awk linux 分隔_awk多分隔符

awk的-F参数可以指定新的分隔符,有些时候可能需求指定多个分隔符,比如下面的内容

[root@N1 ~]# netstat -an | grep ESTAB

udp 0 0 192.168.1.120:35570 212.47.249.141:123 ESTABLISHED

udp 0 0 192.168.1.120:55589 108.59.2.24:123 ESTABLISHED

如果需要取出源IP的话,一般大家会这样做,即做两次awk操作

[root@N1 ~]# netstat -an | grep ESTAB | awk '{print $5}' | awk -F: '{print $1}'

108.59.2.24

212.47.249.141

其实呢,通过在awk中指定两个分隔符(空格和:),即可一次性的提取出源IP地址,在awk中支持多个分隔符的写法如下:

[root@N1 ~]# netstat -an | grep ESTAB | awk -F '[ :]+' '{print $6}'

108.59.2.24

212.47.249.141

#多一个加号表明将连续出现的分隔符当做一个来处理

注意:

在awk中,当分隔符指定为空字符串时,awk会将多个连续的空白看做一个单一的分隔符。此外,awk还会忽略开头和结尾处的空白。


版权声明:本文为weixin_39862097原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。