AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。
使用方法
awk '{pattern + action}' {filenames}
尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。
通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
示例:
打印系统带有java字段的所有进程的第7列:
ps -ef | grep java | awk '{print $7}'
-bash-4.1$ ps -ef | grep java | awk '{print $7}'
02:14:53
00:00:00
00:53:49
00:56:24
00:39:20
01:00:56
05:19:08
打印系统带有java字段的所有进程的第三行,显示数值为当前行与上面所有行叠加的结果:
-bash-4.1$ ps -ef | grep java | awk '{print sum=sum+$3}'
1
20812
20813
20814
20815
20816
44796