linux世界中最普遍使用的两个命令行编辑器:linux
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤其强大。简单来讲awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各类分析处理。编程
awk有3个不一样版本: awk、nawk和gawk,未做特别说明,通常指gawk,gawk 是 AWK 的 GNU 版本。bash
gawk的报告生成能力一般用来从大文本文件中提取数据元素,并将它们格式化成可读 的报告,完美的例子是格式化日志文件。编辑器
在全部的发行版中都没有默认安装gawk程序。工具
1 awk '{pattern + action}' {filenames}
gawk强大之处在于能够写脚原本读取文本行的数据,而后处理并显示数据。大数据
必须将脚本命令放到两个花括号{ } 中。spa
以上运行gawk’{print"hello word"}‘不会有任何反应,print命令会将文本打印到STDOUT,但没有在命令行上指定文件名,因此gawk只会从STDIN接收数据。
若输入一个文本并按下回车键,无论你在数据流中输入什么,都会获得一样的输出hello word 。
ctrl+D组合键会在bash中产生一个EOF字符,即是数据流已经结束。命令行
gawk会自动给一行中的每一个数据元素分配一个变量,默认状况下,会将以下变量分配给它在文本行中发现的数据字段:3d
每一个数据字段是经过字段分隔符划分的,默认字段分割符是任意的空白字符(如空格或制表符)。
若是要在命令行的脚本中使用多条命令,只要在命令之间放个分号;便可。
默认状况,gawk会从输入中读取一行文本,而后针对该行的数据执行程序脚本,但有时可能须要在处理数据前或数据后运行脚本: