awk:报告生成器
使用方法
-F指定分隔符
'BEGIN{}{}END{}'
NR表示行数目
NF表示列数目
FILENAME表示文件名
'/bash/{}'
'NR==3||NR==4{}'
'NR>=3&&NR<=6{}'
{} --> 在该括号中输入可执行命令,多条命令以";"分隔
打印文件passwd的全部内容 ($0代表取一整行)
awk '{print$0}' passwd
打印文件的以":"为分隔符的所有行的第一列
awk -F ':' '{print$1}' passwd
打印文件的以":"为分隔符的第三行和第五行的第一列
awk -F ':' 'NR==3||NR==5{print$1}' passwd
打印文件的以":"为分隔符的第三行和第五行的第一列,同时在结尾打印文件名
awk -F ':' 'NR==3||NR==5{print$1}END{print FILENAME}' passwd
打印文件的以":"为分隔符的第三行至第五行的最后一列
awk -F ':' 'NR>=3&&NR<=5{print$NF}' /root/passwd
打印以bash结尾的所有行
awk -F ':' '/bash$/{print$0}' /root/passwd
利用awk统计/sbin/nologin的所有行数
awk -F ':' 'BEGIN{n=0}/nologin/{n++}END{print n}' /root/passwd
'^[^a-d]{}'
'^r|bash${}'
'/^r/||/bash$/{}'
'/^r/&&/bash$/{}'
'$6~/bin$/{}'
'$6!~/bin$/{}'
打印文件中不是以b-z开头的行内容
awk -F ':' '/^[^b-z]/{print}' /root/passwd
打印文件中以b开头或者以bash结尾的行
awk '/bash$|^b/' /root/passwd
打印以s开头且以bash结尾的行
awk '/bash$/&&/^s/' /root/passwd
打印第七列是以bash结尾且以s开头的行
awk -F ':' '$7~/bash$/&&/^s/{print$0}' /root/passwd