介绍
awk是Linux上的一款文本处理器。通过awk,可以实现根据文本执行相应的指令。
基本语法
$ awk [option] 'pattern {action}' test.txt
基本的用法是读取test.txt中的每一行。对于每一行,对于pattern匹配的文本,执行action。
下面用几个简单的例子介绍该基本用法。
示例1——打印文本
以下是一个例子:
book.txt:
book publisher price
apue pearson 100
csapp pearson 80
执行 awk '{print $2}' book.txt
的结果为:
publisher
pearson
pearson
其实就是对于每一行,以空格作为分隔,分割为多个field。然后将每一行的第二个field给打印出来。{print $2}
即为打印的具体action。
示例2——根据pattern打印文本
在上一个示例中,我们并没有使用到pattern。在本示例中,我们不打印抬头行,即只打印第二行之后的内容。命令如下:
awk 'NR > 1 {print $0} book.txt'
结果为: