10.4 文本处理工具awk
上一节中介绍的sed其实是以行为单位的文本处理工具,而awk则是基于列的文本处理工具,它的工作方式是按行读取文本并视为一条记录,每条记录以字段分割成若干字段,然后输出各字段的值。事实上,awk是一种编程语言,其语法异常复杂,所以awk也是一种较难掌握的文本处理工具。本节将使用大量的例子来直接演示awk的常见用法,让读者能迅速学会使用。
awk认为文件都是结构化的,也就是说都是由单词和各种空白字符组成的,这里的“空白字符”包括空格、Tab,以及连续的空格和Tab等。每个非空白的部分叫做“域”,从左到右依次是第一个域、第二个域,等等。$1、$2分别用于表示域,$0则表示全部域。
为了演示awk的用法,首先创建文件Awk.txt,文件内容如下所示:
- [root@localhost ~]# cat Awd.txt
- john.wang Male 30 021-11111111
- lucy.yang Female 25 021-22222222
- jack.chen Male 35 021-33333333
- lily.gong Female 20 021-44444444 ShangHai