Awk入门
Awk 这门文本处理语言在以下任务中非常有用:
- 统计文本文件中的信息并根据结果生成报告。
- 为文本编辑器(如
vi
)添加额外的功能。 - 将文件从一种格式转换为另一种格式。
- 创建小型数据库。
- 对包含数值数据的文件执行数学运算。
Awk 具有“双重身份”:它既是一个用于执行简单文本处理任务的实用工具,又是一种可用于执行复杂文本处理任务的编程语言。
然而,这两种身份本质上是相同的。Awk 处理任何文本处理任务的机制都是一样的,但其灵活性使得用户既可以在命令行中输入有用的 Awk 代码,也可以编写包含数十行 Awk 语句的复杂程序。
Awk 语句组成了一种编程语言。事实上,Awk 非常适合用于简单的、快速实现的计算程序。任何能够编写 BASIC 语言程序的人都可以使用 Awk,尽管 Awk 的语法与 BASIC 不同。能够编写 C 语言程序的人也可以轻松上手 Awk,而想学习 C 语言的人可能会发现 Awk 是一个很好的入门工具,不过需要注意的是,尽管 Awk 和 C 语言有许多相似之处,但它们之间仍然存在显著的差异。
然而,Awk 也有其局限性。它并不适用于处理极其庞大和复杂的任务。此外,Awk 是一种解释型语言,也就是说,Awk 程序无法独立运行,必须通过 Awk 工具执行。这使得 Awk 相对较慢,尽管在解释型语言中它的执行效率已经算是比较高的。此外,Awk 只能在支持 Awk 的系统上运行。不过,市面上也有一些转换工具,可以将 Awk 代码转换为 C 代码,并编译成独立可执行的程序,但这些工具通常需要单独购买。
在继续之前,还有一个问题:"Awk" 这个名字是什么意思? 实际上,Awk 取自其三位作者的姓氏首字母:"Aho、Weinberger 和 Kernighan"。Kernighan 后来曾说:“用作者的名字来命名一门语言……显示了一定的想象力贫乏。” 此外,"Awk" 这个名字让人联想到一种海鸟——海雀(Auk),因此,许多关于 Awk 的书籍封面上都会出现海雀的图片。