awk форматирует пробел

Это вывод ip r при переформатировании с помощью awk . Все в порядке, за исключением расположения : довольно грязно из-за другого имени интерфейса.

wolf@linux:~$ ip r | awk '{print $3 " : " $1}'
virbr0 : 10.10.0.0/16
wlo1 : 10.10.10.0/24
vboxnet0 : 10.10.11.0/24
virbr0 : 10.10.12.0/24
wolf@linux:~$ 

Я думал, что при использовании \ t проблема исчезнет.

Для более коротких Имя сетевой карты, но все еще существует проблема с более длинным именем, например vboxnet0

wolf@linux:~$ ip r | awk '{print $3 "\t : " $1}'
virbr0   : 10.10.0.0/16
wlo1     : 10.10.10.0/24
vboxnet0     : 10.10.11.0/24
virbr0   : 10.10.12.0/24
wolf@linux:~$ 

Каков наилучший способ переформатировать это?

Ожидаемый результат

wolf@linux:~$ ip r | awk '{print $3 "\t : " $1}'
virbr0   : 10.10.0.0/16
wlo1     : 10.10.10.0/24
vboxnet0 : 10.10.11.0/24
virbr0   : 10.10.12.0/24
wolf@linux:~$ 
0
задан 6 June 2020 в 11:45

1 ответ

Это больше работы для столбца :

ip r | awk '{print $3, ":", $1}' | column -t

Применение столбца -t на ваш вход:

% cat > foo <EOF
virbr0   : 10.10.0.0/16
wlo1     : 10.10.10.0/24
vboxnet0     : 10.10.11.0/24
virbr0   : 10.10.12.0/24
EOF

% column -t < foo
virbr0    :  10.10.0.0/16
wlo1      :  10.10.10.0/24
vboxnet0  :  10.10.11.0/24
virbr0    :  10.10.12.0/24
0
ответ дан 19 June 2020 в 21:30

Другие вопросы по тегам:

Похожие вопросы: