awk!字符问题,修复中!.......

时间:2023-03-09 08:16:11
awk!字符问题,修复中!.......

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。