awk '条件类型1{动作1} 条件类型2{动作2}' file1 file2
变量名称:1.NF 每一行($0表示文本所有域)拥有的字段数。
2.NR目前awk处理的"第n行"数据。
3.FS默认分隔符。
运算符:1.> 大于。
2.<小于。
3.>=大于或等于。
4.<=小于或等于。
5.==等于。
6.!=不等于。
7.~匹配。
8。~!不匹配。
实例:
1.选取文件中,连续与不连续的某几行
awk ' NR ==1,NR==3;NR==5,NR==7{print $0}' file 选取file中第1-3行“"与"第5-7行。
awk '(NR==1)||(NR==3)||(NR==9)' file 选取file中第1行"与"第3行'与"第9行。
2.模式运用
awk '{print $0}' file 打印file的所有域。
awk 'BEGIN{print "hello,world"}' 自定义模式打印"hello,world"。
awk 'BEGIN{FS=":"};{print $1,$2}' 打印以":"分隔符的 $1 $2。
awk '{x++};END{print x}' file 对"x"字符进行统计。
awk -F : '{print $NF}' file 打印出以":" 分隔符的,最后一段。
awk 'BEGIN{FS=":"};{print $NF}' file 功能同上。
awk 'BEGIN{FS="[:\t ]"};{print NF"="$NF}' file 打印以 ":" " \t" " "分隔符的最后一行。
awk '{all=$2+$3+$4+$5+$6;print $1"\t"all}' file $1=学生姓名 all=统计的数量。
awk '/^$/{x++};END{print x}' file 查询file文件内的空行总数。
awk -F : '{if($3>=1000 && $3<=5000) print $0}' /etc/passwd 列出uid为1000~5000之间的用户。
awk -F . {if($3==56 && $4>=101)print $0 }' ip-log 列出第三个域为56 第四个域为小于等于101的ip。