shell学习5--awk的比较表达式

来源:互联网 发布:java开发人事管理系统 编辑:程序博客网 时间:2024/06/02 04:36
       awk中的pattern,也就是匹配模式,一般由表达式构成,是对文本行的进行查找的条件。表达式一般有正则表达式,比较表达式(包含关系运算符的表达式)。

       一、正则表达式:默认在每一行中表示匹配某个字符串,如果使用匹配通配符(~)则需要指定某一字段(或者记录)。写在两个“/” 之间。支持大部分正则表达式元字符,如^, $, [ ]等
            eg :awk '/Hello/{print $0}' file1            #匹配包含“Hello”字符串的行,并输出到屏幕上
                  awk '$1 ~ /^Hello/{print $0} '  file1 #匹配第一个字段以Hello开头的行,并输出到屏幕上

       二、比较表达式:对文本行进行比较,如果条件为真,则执行指定的动作。使用到关系运算符,一般用于比较数值和字符串。
          1.常用的关系运算符:
                 <    小于          eg: awk '$3 < 1000' employees   #打印第三字段小于1000的行
               <=   小于等于    eg: awk '$3 <= 1000' employees                
                 >   大于          eg: awk  '$3 >1000' employees   #打印第三字段大于1000的行
               >=   大于等于    eg: awk  '$3 >=1000'employees
                ==    等于         eg: awk  '$3 ==1000'employees
                 !=   不等于      eg: awk  '$3 !=1000'employees
                  ~   匹配正则表达式eg:awk '$1 ~ /Tom/' employees #打印第一个字段包含“Tom”的行
                 !~    不匹配    awk '$1 !~/Tom/'  employees   #打印第一个字段不包含“Tom”的行
                 ?:     三目运算符,与if/else相同含义。一般写在"{ }"中控制赋值语句。
           2.常用的算术运算符:按浮点方式执行,可用在pattern中的。
                 +     加    eg:awk ‘$3+$4 > 505 {print $0}'  file1
                 -     
                 *     
                 /     
                   模(求余)
                    幂运算
                     赋值运算符。 eg:  awk 'sum=30*$1{print sum}' file
            3.常用的逻辑运算符:把多个表达式组合起来
               && 逻辑与      a&b  a和b同时成立表达式为真。
                 ||    逻辑或      a || b a和b有一个为真表达式就为真
                 !  非            !a    a为真则表达式!a为假,反之亦然。
                 eg:awk ' $2 >5&& $2<=15 ' filename
            4.范围表达式:用“,”分割开的两个表达式,用法与sed相同。
                         awk ‘/Tom/,/Suan/ ’ filename 
0 0
原创粉丝点击