Linux awk命令的正则表达式使用

正则表达式用斜线括起来, /字符串/。以下为几个常用规则:


匹配

使域号匹配表达式,使用符号'~'后紧跟正则表达式,也可以使用if语句。awk中if语句后面的条件用()括起来。

  1. awk '{if($4~/字符串/) print $0}' readfile  //如果域4包含匹配的字符串,打印整句  
  2. awk '{$0 ~ /字符串/'} readfile //如果记录包含匹配的字符串,打印整句  

精确匹配

  1. awk '{if($3 ~ /字符串/) print $0}' readfile    //包含字符串的所有记录都匹配,不精确  
  2. awk '$3 == "字符串" {print $0}' readfile   //确保只有字符串得以匹配,精确匹配  

不匹配

  1. awk '{if($4 !~ /匹配字符串/) print $0}' readfile  

小于

  1. awk '{if($6<$7) print "xxx"}' readfile  

小于等于

  1. awk '{if($6<=$7) print "xxx"}' readfile  

大于

  1. awk '{if($6>$7) print "xxx"}' readfile  

设置大小写

为查询大小写信息,可以使用[ ]符号

  1. awk '/[Gg]reen/' readfile   //匹配green Green的行  

任意字符

  1. awk '$1 ~/^...a/' readfile  //抽取域1,其记录第一域的第四个字符时a  

或关系匹配

使用或关系符时,语句必须用圆括号括起来

  1. awk '$0 ~ /(字符串1|字符串2)/' readfile   //匹配|两边模式之一  

行首

  1. awk '/^字符串/' readfile  

其他

&&   AND:语句两边必须同时为真

||  OR:语句两边同时或其中一边匹配为真
! 非 求逆

转载于:https://my.oschina.net/u/2391658/blog/703922

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值