正则表达式用斜线括起来, /字符串/。以下为几个常用规则:
匹配
使域号匹配表达式,使用符号'~'后紧跟正则表达式,也可以使用if语句。awk中if语句后面的条件用()括起来。
- awk '{if($4~/字符串/) print $0}' readfile //如果域4包含匹配的字符串,打印整句
- awk '{$0 ~ /字符串/'} readfile //如果记录包含匹配的字符串,打印整句
精确匹配
- awk '{if($3 ~ /字符串/) print $0}' readfile //包含字符串的所有记录都匹配,不精确
- awk '$3 == "字符串" {print $0}' readfile //确保只有字符串得以匹配,精确匹配
不匹配
- awk '{if($4 !~ /匹配字符串/) print $0}' readfile
小于
- awk '{if($6<$7) print "xxx"}' readfile
小于等于
- awk '{if($6<=$7) print "xxx"}' readfile
大于
- awk '{if($6>$7) print "xxx"}' readfile
设置大小写
为查询大小写信息,可以使用[ ]符号
- awk '/[Gg]reen/' readfile //匹配green Green的行
任意字符
- awk '$1 ~/^...a/' readfile //抽取域1,其记录第一域的第四个字符时a
或关系匹配
使用或关系符时,语句必须用圆括号括起来
- awk '$0 ~ /(字符串1|字符串2)/' readfile //匹配|两边模式之一
行首
- awk '/^字符串/' readfile
其他
&& AND:语句两边必须同时为真
|| OR:语句两边同时或其中一边匹配为真
! 非 求逆