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还会忽略开头和结尾处的空白。

原创文章,作者:N27_what,如若转载,请注明出处:http://www.178linux.com/84296

(0)
N27_whatN27_what
上一篇 2017-08-09
下一篇 2017-08-10

相关推荐

  • 马哥教育网络班19期+第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin),分别这两类用户的个数,通过字符串比较来实现。 #!/bin/bash for user_shell in `awk -F: '{print $7}'&nbsp…

    Linux干货 2016-07-01
  • shell脚本基础

    编程基础 v程序:指令+数据 v程序编程风格: 过程式:以指令为中心,数据服务于指令(适合小型程序) 对象式:以数据为中心,指令服务于数据(适合大型程序) vshell程序:提供了编程能力,解释执行 程序的执行方式 v计算机:运行二进制指令; v编程语言: 低级:汇编 高级: 编译:高级语言–>编译器–>目标代码 java…

    Linux干货 2016-08-15
  • ☞keepalived

    keepalived 高可用集群 VRRP协议 keepalived 安装keepalived 主要文件 配置文件说明 【一】测试keepalived基本功能 单主模型示例 双主模型示例 通知脚本示例 【二】单主模型高可用DR类型LVS集群 配置keepalived主机 Real Server配置 测试结果 【三】双主模型高可用DR类型LVS集群 配置kee…

    Linux干货 2016-11-01
  • linux系统及简单使用

    简介:CentOS(Community Enterprise Operating System)社区企业操作系统,安全和稳定性较好,有优秀的社区支持。   Linux系统的原则: 1、由单一目的的较小的程序程序组成 2、一切皆文件 3、避免捕获用户接口 4、配置文件保存在文本中 5、链接程序完成复杂的功能   Linux系统安装: 英文安…

    Linux干货 2017-07-15
  • 二进制、八进制、十进制、十六进制之间的转换

    二进制、八进制、十进制、十六进制之间的关系:   二进制:0,1 八进制:0,1,2,3,4,5,6,7, 十进制:0,1,2,3,4,5,6,7,8,9 十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F   二进制与十进制之间的转换: 十进制转二进制:   二进制转十进制:   二进制与八进制…

    2017-04-01