七、比较表达式
1.关系运算符
运算符 |
描述 |
---|---|
赋值运算符 |
|
= += -= *= /= %= ^= **= |
赋值语句 |
逻辑运算符 |
|
|| |
逻辑或 |
&& |
逻辑与 |
正则运算符 |
|
~ ~! |
匹配正则表达式和不匹配正则表达式 |
关系运算符 |
|
< <= > >= != == |
关系运算符 |
算术运算符 |
|
+ - |
加,减 |
* / & |
乘,除与求余 |
+ - ! |
一元加,减和逻辑非 |
^ *** |
求幂 |
++ -- |
增加或减少,作为前缀或后缀 |
其它运算符 |
|
$ |
字段引用 |
空格 |
字符串连接符 |
?: |
C条件表达式 |
in |
数组中是否存在某键值 |
例:
awk '$1==123 {print $0}' test_awk.txt #123 456 1.23 4.5 321
说明:当第一个字段等于123时,打印该条记录。
例:
awk '$1 ~ /ABC/ {print $0}' test_awk.txt #ABC Def hIc lmN ABC #ABC Def cih lmN dsf
说明:当以第一个字段匹配模式ABC时,打印该条记录。
2.条件表达式
格式:条件表达式1 ? 表达式2 : 表达式3
例:
cat test
123 125 456 789
awk 'max=$1 > $2 ? $1 : $2 {print max}' test #125
说明:当第一个字段大于第二个字段时,max等于第一个字段的值,否则max等于第二个字段的值,打印max的值
3.算术运算符
awk的运算符包括加、减、乘、除、摸、幂(^)。
例:
cat test
123 125 456 789
awk '$1 + $2 > 200 {print $0}' test #123 125 456 789
说明:第一个字段的值加上第二个字段的值结果如果大于200,则打印该条记录。
4.逻辑操作符和复合模式
awk的逻辑操作符包括:与、或、非。复合模式使用逻辑运算符将模式组合起来形成的表达式。表达式的计算式从左向右的。
例:
awk '$1 >100 && $2 > 100 {print $0}' test #123 125 456 789
5.范围模式
范围模式先匹配从第一个模式的首次出现到第二个模式首次出现的内容,然后匹配从第一个模式的下一次出现到第二个模式下一次出现之间的内容,以此类推。如果匹配到第一个模式而发现第二个模式,awk就显示从第一个模式出现的行到文件末尾之间所有的行。
awk '/abc/,/ABC/{print $0}' test_awk.txt #abc def hic lmn abc #123 456 1.23 4.5 321 #ABC Def hIc lmN ABC
说明:打印匹配模式abc和匹配模式ABC之间的行。