Awk
2019-01-23 本文已影响2人
知止9528
简介
awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。
它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。
awk其实不仅仅是工具软件,还是一种编程语言。
基本语法
格式
$ awk 动作 文件名
示例
$ awk '{print $0}' demo.txt
说明
print表示动作, $0表示当前行,最终就是原样打印每一行
如
$ echo 'this is a test' | awk '{print $0}'
this is a test
awk会根据空格和制表符,将每一行分成若干字段,依次用2、$3代表第一个字段、第二个字段、第三个字段等等。
$ echo 'this is a test' | awk '{print $3}'
a
$3代表this is a test的第三个字段a。
除了$ + 数字表示某个字段,awk还提供其他一些变量。
变量NF表示当前行有多少个字段,因此$NF就代表最后一个字段。
$(NF-1)代表倒数第二个字段。
变量NR表示当前处理的是第几行。