- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第2 6章 g a w k编程
本章内容:
• 应用
• 特点
• awk基础
• 动作
• 高级输入和输出
• 函数
• 书写报告
• 管道流命令
• 最后一个内部函数:s y s t e m
g a w k或GNU awk 是由Alfred V. A h o,Peter J.We i n b e rg e r和Brian W. K e r n i g h a n于1 9 7 7年为
U N I X 创建的a w k编程语言的较新版本之一。a w k 出自创建者姓的首字母。K e r n i g h a n还参与了C
语言和U N I X 的创建;A h o 和We i n b e rg e r参与了U N I X 的开发。由于他们的经历,你会感觉到
a w k和C之间有许多相似之处。
a w k有几个版本:最初的a w k 、n a w k 、POSIX awk ,当然还有g a w k 。n a w k是于1 9 8 5年创建
的,并且是在“The awk Programming Language ”中描述的版本(参见本章后面“小结”中的
参考)。POSIX awk是在“IEEE Standard for Information Te c h n o l o g y ,Portable Operating System
I n t e r f a c e ”的第二部分“Shell and Utilities Volume 2”中所定义的,A N S I批准于 1 9 9 3年4月5 日。
GUN awk 是基于POSIX awk 的。
用户可以在/ b i n 和/ u s r / b i n 目录中找到a w k命令,实际上它们是程序 / b i n / g a w k 的一个链接。
一个短小的( g ) a w k手册页在目录/ u s r / m a n / m a n 1 中,而关于( g ) a w k编程的详细的信息可以在目录
/ u s r / d o c / g a w k 中找到。命令info gawk (或在e m a c s中使用C-h i gawk )也可得到更多的信息。
a w k语言(在其所有的版本中)是一种具有很强能力的模式匹配和过程语言。 a w k获取一
个文件(或多个文件)来查找匹配特定模式的记录。当查到匹配后,即执行所指定的动作。作
为一个程序员,你不必操心通过文件打开、循环读每个记录,控制文件的结束,或执行完后关
闭文件。这些细节都是自动替你处理的。
创建简短的a w k程序是很容易的,因为具有这样的功能性—许多细节都是a w k语言自动处
理的。还有许多函数和内部特性来处理过程文件中的许多任务。
26.1 应用
a w k有许多可能的用法,包括从文件中析取数据,在文件内计数出现以及生成报告。
a w k语言的基本语法适合 C编程语言。假如你已经熟悉 C ,那么就会了解a w k 的大部分。在
许多方面,a w k是C 的一种简易版本,由于它(动态地)处理字符串和数组的方式,假如你还
不熟悉C ,那么学习a w k要比学习C稍容易些。
对于快速模型研究或试验用 C一类其他的语言实现的思想, a w k也是非常有用的。你不必
4 6 8 第四部分 L i n u x 编程
下载
去操心微小的细节,内部会自动处理它们。你要关注基本的功能性。
提示 awk对文本文件有效,因为二进制数据可以包含像记录结束符(换行符)这样的
值(或毫无任何值) a w k会造成混淆。若要处理二进制文件,考察P e r l或利用像C那样的
传统编程语言。
26.2 特性
a w k对于U N I X环境是易适应的,a w k含有预定义的变量,自动化许多编程任务,提供常规
变量,支持C格式化输出,并且易于使用。a w k让你把s h e l l脚本和C编程的精华结合在一起。
在a w k 内执行同一任务通常有许多不同的方法。程序员判断哪种方法最适合于应用。利用
内部变量和函数,自动执行许多标准的编程任务。 a w k 自动读每个记录,把记录分成字段,并
在需要时进行类型转换。变量使用的方式确定了它的类型—不必声明变
文档评论(0)