AWK学习笔记

 

1. awk是三个 人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。awk是一种样式扫描与处理工具。但其功能却大大强于sed和grep。

awk支持对记录字段的处理,其中对字段的处理是grep和sed不能实现 的,这也是awk优于二者的原因之一。

 

2.与其它UNIX命令一样,awk拥有自己的语法:

awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...] 
  •  -F re:允许awk更改其字段分隔符。
  • parameter: 该参数帮助为不同的变量赋值。
  • 'prog': awk的程序语句段。这个语句段必须用单拓号:'和'括起,以防被shell解释。这个程序语句段的标准形式为:
'pattern {action}'

 

 

  • pattern参数可以是egrep正则表达式中的任何一个
  • action参数总是被大括号包围,它由一系统awk语句组成,各语句之间用";"分隔。awk解释它们,并在pattern给定的样式匹配的记录上执行 其操作。
  • 你可以省略pattern和 action之一,但不能两者同时省略,当省略pattern时没有样式匹配,表示对所有行(记录)均执行操作,省略action时执行缺省的操作——在 标准输出上显示。

  • in_file:awk的输入文件,awk允许对多个输入文件进行处理。值得注意的是awk不修改输入文件。如果未指定输入文件,awk将接受标准输入,并将结果显示在标准输出上。awk支持输入输出重定向。

例:显示文本文件myfile中第七行到第十五行中以字符%分隔的第一字段,第三字段和第七字段:

awk -F % 'NR==7,NR==15 {printf $1 $3 $7}'

 例:显示文件myfile中的行号和第3字段:

$awk '{printf"%03d%s\n",NR,$1}' myfile

 

 

 

 

你可能感兴趣的:(学习笔记)