6.1. gawk 入门

6.1.1. 什么是 gawk?

Gawk 是常用的 UNIX awk 程序的 GNU 版本,是另一种流行的流编辑器。由于 awk 程序通常只是指向 gawk 的链接,我们将其称为 awk

awk 的基本功能是在文件中搜索包含一个或多个模式的行或其他文本单元。当一行与其中一个模式匹配时,将对该行执行特殊操作。

awk 中的程序与大多数其他语言中的程序不同,因为 awk 程序是“数据驱动”的:您描述要处理的数据,然后在找到数据时执行的操作。大多数其他语言都是“过程式”的。您必须非常详细地描述程序要执行的每个步骤。在使用过程式语言时,通常很难清楚地描述程序将处理的数据。因此,awk 程序通常令人耳目一新地易于阅读和编写。

Note这到底意味着什么?
 

在 20 世纪 70 年代,三位程序员一起创建了这种语言。他们的名字是 Aho、Kernighan 和 Weinberger。他们取了他们名字的第一个字符并将它们放在一起。因此,该语言的名称也可能被称为“wak”

6.1.2. Gawk 命令

当您运行 awk 时,您需要指定一个 awk 程序,告诉 awk 要做什么。该程序由一系列规则组成。(它也可能包含函数定义、循环、条件和其他编程结构,这些是高级功能,我们现在将忽略。)每个规则指定一个要搜索的模式和一个在找到模式时要执行的操作。

有几种运行 awk 的方法。如果程序很短,最简单的方法是在命令行上运行它

awk 程序输入文件

如果必须进行多次更改,可能定期地对多个文件进行更改,则将 awk 命令放在脚本中会更容易。读取方式如下

awk-f 程序文件 输入文件