Разбор ifconfig - PullRequest
       50

Разбор ifconfig

0 голосов
/ 15 апреля 2020

Пытаюсь разобрать вывод ifconfig, но я не могу на всю жизнь заставить работать последнюю часть этого форматирования. Вот что у меня есть:

ifconfig -a | awk 'BEGIN{ORS=RS="\n\n"} !/^lo/{print}' | sed 's/\s\+\s/=/g
s/.\overruns/=overruns/
/:[^=:]\+:/s/:[^=:]\+ /&=/g
s/^=/\t/
s/ *=$//
s/ *=/\n\t/g' | grep 'RX\|TX\|eth\|wlan\|dropped\|inet\|bytes\|BROAD' 

Это выводит это:

eth0: flags
    4163<UP,BROADCAST,RUNNING,MULTICAST>
    inet 172.17.0.2
    inet6 fe80::42:acff:fe11:2
    ether 02:42:ac:11:00:02
    RX packets 163
    bytes 7230 (7.0 KiB)
    RX errors 0
    dropped 0
    TX packets 1501
    bytes 111873 (109.2 KiB)
    TX errors 0
    dropped 0

Я пытаюсь добавить RX и TX к их соответствующим парам, как это:

eth0: flags
    4163<UP,BROADCAST,RUNNING,MULTICAST>
    inet 172.17.0.2
    inet6 fe80::42:acff:fe11:2
    ether 02:42:ac:11:00:02
    RX packets 163
    **RX bytes** 7230 (7.0 KiB)
    RX errors 0
    **RX dropped** 0
    TX packets 1501
    **TX bytes** 111873 (109.2 KiB)
    TX errors 0
    **TX dropped** 0 

Любая пу sh в правильном направлении будет принята с благодарностью!

1 Ответ

0 голосов
/ 15 апреля 2020

Это немного неубедительно, но просто добавьте что-то вроде этого в код выше:

| sed '/RX/{n;s/[^[:space:]]/RX &/};/TX/{n;s/[^[:space:]]/TX &/}'
...