awk 格式化空格

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这个问题就会消失。

对于较短的 NIC 名称,它确实可以做到,但是对于较长的名称,例如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:~$ 

答案1

这更像是column

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

应用于column -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

相关内容