| 1 | #! /bin/sh |
| 2 | |
| 3 | set -e |
| 4 | |
| 5 | ip -s addr \ |
| 6 | | awk ' |
| 7 | /^[0-9]+:/ { |
| 8 | sub(":$", "", $1) |
| 9 | sub(":$", "", $2) |
| 10 | sequence = $1 |
| 11 | interface = $2 |
| 12 | interfaces[sequence] = interface |
| 13 | } |
| 14 | |
| 15 | /^ +inet [0-9]/ { |
| 16 | sub("/[0-9]+", "", $2) |
| 17 | addr = $2 |
| 18 | addrs[interface] = addr |
| 19 | } |
| 20 | |
| 21 | /^ +RX: / {transfer_direction = "r"} |
| 22 | /^ +TX: / {transfer_direction = "w"} |
| 23 | |
| 24 | /^ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ *$/ { |
| 25 | io[interface, transfer_direction] = $1; |
| 26 | } |
| 27 | |
| 28 | END { |
| 29 | for (seq=1; seq<=sequence; seq++) { |
| 30 | interface = interfaces[seq] |
| 31 | label = substr(interface, 1, 1) |
| 32 | if (addrs[interface]) { |
| 33 | curr_read = io[interface, "r"] |
| 34 | curr_write = io[interface, "w"] |
| 35 | print(interface, addrs[interface], curr_write, curr_read) |
| 36 | } else { |
| 37 | print(interface) |
| 38 | } |
| 39 | } |
| 40 | }' |