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

原创
2016/07/01 10:26
阅读数 3.1W

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


匹配

使域号匹配表达式,使用符号'~'后紧跟正则表达式,也可以使用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:语句两边同时或其中一边匹配为真
! 非 求逆

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
1 收藏
0
分享
返回顶部
顶部