Awk关系运算符和布尔运算符
Awk关系运算符及其意义
运算符 |
意义 |
< |
小于 |
> |
大于 |
<= |
小于等于 |
>= |
大于等于 |
== |
等于 |
!= |
不等于 |
~ |
匹配正则表达式 |
!~ |
不匹配正则表达式 |
Awk布尔运算符及其意义
运算符 |
意义 |
|| |
逻辑或 |
&& |
逻辑与 |
! |
逻辑非 |
示例:
awk 'BEGIN {FS = ":"} $1~/root/' /etc/passwd 打印 /etc/passwd文件中第一个域匹配root的记录
awk 'BEGIN {FS = ":"} $0!~/bash/' /etc/passwd 打印 /etc/passwd文件中所有域不匹配bash的记录
awk进行模式匹配时,可以用到条件语句(类似于C),有if,if /else, if/else/else三种。
awk 'BEGIN {FS = ":"} {if ($3 < $4) print $0}' /etc/passwd 打印第三个域小于第四个域的记录
awk 'BEGIN {FS = ":"} {if ($3==10 || $4==10) print $0}' /etc/passwd
打印第三个域或第四个域精确等于10 的记录(利用==的匹配可成为精确匹配)。
awk 'BEGIN {FS = ":"} {if ($3~10 || $4~10) print $0}' /etc/passwd
打印 第三个域或第四个域包含10的记录(利用~的匹配可成为模糊匹配),如果$3=210,其所在记录也会被打印。
本文完全参照 <linux shell 编程从初学到精通> 华清远见嵌入式培训中心 伍之昂等编著