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 编程从初学到精通> 华清远见嵌入式培训中心 伍之昂等编著