问题描述:
方法一,用awk来处理:
复制代码代码示例:
[root@oldboy ~]# ifconfig eth0|grep 'inet addr'|awk -F ":" '{print $2}'|awk '{print $1}'
10.0.0.162 小结:这个方法是常规方法。
方法二,通过awk同时使用多个分隔符来实现:
复制代码代码示例:
[root@oldboy ~]# ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}'
192.168.1.186
提示:本题通过使用空格或冒号来做分隔符,然后一次性取出结果,就是空格或冒号可以看做是同一个分隔符。 缺点:计算$n的时候很费劲,因为inet前面有多个空格,查到$13,真是不容易,如此看来从实现时间上可能还不如第一个方法快呢?
方法三,通过awk同时使用多个分隔符,然后通过正则匹配多个分隔符的方法来实现:
复制代码代码示例:
[root@oldboy ~]# ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'
10.0.0.185
简易办法:
复制代码代码示例:
[root@oldboy ~]# ifconfig eth0|awk NR==2
inet addr:10.0.0.185 Bcast:10.0.0.255 Mask:255.255.255.0
3)指定awk -F '[ :]+'分隔符后,不同字符串被分隔的列依次为:
复制代码代码示例:
inet
addr 10.0.0.185 Bcast:10.0.0.255 Mask:255.255.255.0 第一列 第二列 第三列 第四列
后面忽略不计。
复制代码代码示例:
[root@oldboy ~]# echo ---1:----2|awk -F '[-:]+' '{print $2}'
(责任编辑:IT)1 [root@oldboy ~]# echo ---1:----2|awk -F '[-:]+' '{print $3}' 2 [root@oldboy ~]# echo ---1:::::2|awk -F '[-:]+' '{print $3}' 2 |