我在拆分多格式线时遇到问题。我想从命令route -n
获取所有网关。我所知道的只是使用cut
,但它不起作用。
假设我的route -n
显示以下消息:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.12.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.12.1 0.0.0.0 UG 1024 0 0 eth0
我想得到:192.168.12.2
和192.168.12.1
答案 0 :(得分:1)
#!/usr/bin/awk -f
{ \
if(FNR > 1) \
{ \
printf $2"\n"; \
} \
} \
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.12.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.12.1 0.0.0.0 UG 1024 0 0 eth0
$ ./process.awk input.txt
192.168.12.2
192.168.12.1
答案 1 :(得分:1)
route -n | awk 'FNR > 1 {print $2}'
输出:
192.168.12.2 192.168.12.1
答案 2 :(得分:1)
如果要使用cut命令,可以这样做:
route -n | tr -s " " | cut -d" " -f2 | grep "[0-9]"
注意:此处第二列是“route -n”命令输出中的网关IP地址列(以数字表示)。