如何拆分多格式的行

时间:2015-09-26 09:38:10

标签: linux bash string-split

我在拆分多格式线时遇到问题。我想从命令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.2192.168.12.1

3 个答案:

答案 0 :(得分:1)

文件process.awk

#!/usr/bin/awk -f

{                              \
  if(FNR > 1)                  \
  {                            \
    printf $2"\n";             \
  }                            \
}                              \

示例input.txt

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地址列(以数字表示)。