跳转到内容

Awk入门/Awk概述

来自Wikibooks,开放世界中的开放书籍

Awk文本处理语言可用于以下任务:

  • 从文本文件中统计信息并根据结果创建报表。
  • 向“vi”等文本编辑器添加其他功能。
  • 将文件从一种格式转换为另一种格式。
  • 创建小型数据库。
  • 对数值数据文件执行数学运算。

Awk有两个方面:它是一个用于执行简单文本处理任务的实用程序,也是一个用于执行复杂文本处理任务的编程语言。

然而,这两个方面实际上是相同的。Awk使用相同的机制来处理任何文本处理任务,但这些机制足够灵活,允许在命令行上输入有用的Awk程序,或实现包含数十行Awk语句的复杂程序。

Awk语句构成一门编程语言。事实上,Awk对于简单、快速和简单的计算编程很有用。任何能够编写BASIC程序的人都可以使用Awk,尽管Awk的语法与BASIC不同。任何能够编写C程序的人都可以轻松使用Awk,而那些希望学习C的人可能会发现Awk是一个有用的垫脚石,需要注意的是,除了它们之间存在的许多相似之处外,Awk和C之间存在显著差异。

但是,Awk也有一些不擅长的方面。它并不真正适合处理极其庞大、复杂的任务。它也是一种“解释型”语言——也就是说,Awk程序不能独立运行,必须由Awk实用程序本身执行。这意味着它相对较慢,尽管就解释型语言而言它效率很高,并且该程序只能在安装了Awk的系统上使用。有一些翻译器可以将Awk程序转换为C代码以进行编译为独立程序,但此类翻译器需要单独购买。

在继续之前,还有一点需要说明:“Awk”这个名称的含义是什么?Awk实际上代表其作者的姓名:“Aho、Weinberger和Kernighan”。Kernighan后来指出:“用作者的名字来命名一门语言……表明想象力的贫乏。” [1] 这个名字让人联想到一种名为“auk”的海鸟,因此关于Awk的书籍封面上经常会出现auk的图片。

参考文献

[编辑 | 编辑源代码]
  1. Brian W. Kernighan,Rob Pike (1984). 《UNIX编程环境》. Prentice-Hall. ISBN 013937681X.
华夏公益教科书