正则表达式、数值比较、字符串、模式组合等,运算符包括&&, ||
, 和 !
, 分别表示 AND, OR
, 和 NOT
模式匹配表示,在处理某一行的时候,如果满足了这个模式,则进行后面的逻辑处理。
- 模式匹配示例
# 正则表达式模式,匹配后执行后面内容
awk -F: '/^daemon/{ print $1, $3 * $4 }' /etc/passwd
# 正则表达式模式,匹配后执行后面内容,匹配任意一个即可
awk -F: '/^daemon/ || /^root/ { print }' /etc/passwd
# 数字比较模式,或运算符,只需满足一个条件即可
awk -F: '$3 >= 100 || $3 == 0 {print }' /etc/passwd
# 字符串相等模式
awk -F: '$1 == "root" {print }' /etc/passwd
# 两个字段同时满足
awk '$2 < 4 && $3 < 20{print }'
# 两个字段同时满足取反
awk '!($2 < 4 && $3 < 20){print }'
# 输出 10 行到 20 行
awk 'NR==10, NR==20 {print}'
# 每个匹配模式都有对应的处理逻辑,多个 "模式动作" 直接用空格分隔
awk -F: '/^daemon/{ print $0} /^root/{ print $0" this is root"}' /etc/passwd
# 某个字段匹配正则
awk -F: ' $1 ~ /daemon/ { print }' /etc/passwd
# 某个字段不匹配正则
awk -F: ' $1 !~ /daemon/ { print }' /etc/passwd