awk匹配模式
正则表达式
匹配记录(整行)
匹配 /etc/passwd 文件中以 root 开头的
$ awk '/^root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ awk '$0 ~/^root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
匹配字段 匹配操作符(~|!~)
匹配 /etc/passwd 文件中第一列以 root 开头的
$ awk '$1~/^root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
匹配 /etc/passwd 文件中最后一列不是以 bash 结尾的
$ awk '$NF !~ /bash$/' /etc/passwd|head -5
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
^ 和 ~ 用法示例
说明
^ 在awk中表示以 ... 开头的列,在 sed 、grep 中表示以 ... 开头的行