1.什么是awk? 你可能对UNIX 比较熟悉,但你可能对awk 很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk 是什么?与其它大多数UNIX 命令不同的是,从名字上看,我们不可能知道awk 的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk 是三个人名的缩写,他们是:Aho、(Peter) Weinberg 和(Brain)Kernighan。正是这三个人创造了 awk---一个优秀的样式扫描与处理工具。 AWK 的功能是什么?与sed 和 grep 很相似,awk 是一种样式扫描与处理工具。但其功能却大大强于 sed和 grep。awk 提供了极其强大的功能:它几乎可以完成 grep 和 sed 所能完成的全部工作,同时,它还可以可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上,awk 的确拥有自己的语言:awk 程序设计语言,awk的三位创建者已将它正式定义为:样式扫描和处理语言。 2.为什么使用 awk? 即使如此,你也许仍然会问,我为什么要使用 awk? 使用 awk 的第一个理由是基于文本的样式扫描和处理是我们经常做的工作,awk 所做的工作有些象数据库,但与数据库不同的是,它处理的是文本文件,这些文件没有专门的存储格式,普通的人们就能编辑、阅读、理解和处理它们。而数据库文件往往具有特殊的存储格式,这使得它们必须用数据库处理程序来处理它们。既然这种类似于数据库的处理工作我们经常会遇到,我们就应当找到处理它们的简便易行的方法,UNIX 有很多这方面的工具,例如 sed 、grep、sort 以及 find 等等,awk 是其中十分优秀的一种。 使用 awk 的第二个理由是awk 是一个简单的工具,当然这是相对于其强大的功能来说的。的确,UNIX有许多优秀的工具,例如 UNIX 天然的开发工具C 语言及其延续 C++就非常的优秀。但相对于它们来说,awk 完成同样的功能要方便和简捷得多。这首先是因为 awk 提供了适应多种需要的解决方案:从解决简单问题的awk 命令行到复杂而精巧的awk 程序设计语言,这样做的好处是,你可以不必用复杂的方法去解决本来很简单的问题。例如,你可以用一个命令行解决简单的问题,而 C 不行,即使一个再简单的程序,C 语言也必须经过编写、编译的全过程。其次,awk 本身是解释执行的,这就使得 awk 程序不必经过编译的过程,同时,这也使得它与shell script 程序...