awk简介
- awk是一件上古神器,用这句话来形容awk是最贴切不过了。 纵观计算机发展的历史,我们发现,awk几乎是伴随着计算机操作系统的发展一路走来。1970年作为计算机计时元年,诞生了UNIX和C语言这两种伟大的事物。
- 在这之后,计算机技术飞速发展,1977年贝尔实验室搞出来一款文本处理神器awk,之所以起名awk是因为采用了三位创始人Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的名字首字母。想想也是比较有意思的一件事情。
- 1991年,linus开源了Linux操作系统,至此,计算机进入了迅猛发展的阶段。awk作为一种神器自然而然地整合到了Linux中,于是作为文本处理三剑客之一的awk就这样一直使用到了现在。
- awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 awk 的 GNU 版本。
- awk其实是一种类似编程语言的存在,它集成了编程语言的诸多特性,使用起来灵活多变。
维基百科
- awk是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。
- 这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。
- awk提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。
- 它具备了一个完整的语言所应具有的几乎所有精美特性。实际上awk的确拥有自己的语言:awk程序设计语言,三位创建者已将它正式定义为“样式扫描和处理语言”。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
- gawk是awk的GNU版本。
最简单地说,awk是一种用于处理文本的编程语言工具。awk在很多方面类似于Unix shell编程语言,尽管awk具有完全属于其本身的语法。它的设计思想来源于SNOBOL4、sed、Marc Rochkind设计的有效性语言、语言工具yacc和lex,当然还从C语言中获取了一些优秀的思想。在最初创造awk时,其目的是用于文本处理,并且这种语言的基础是,只要在输入数据中有模式匹配,就执行一系列指令。该实用工具扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行。
awk是一个报告生成器,它拥有强大的文本格式化的能力,这就是专业的说法。
你可能不理解所谓的报告生成器中的”报告”是什么,你可以把”报告”理解为”报表”或者”表格”,也就是说,我们可以利用awk命令,将一些文本整理成我们想要的样子,比如把一些文本整理成”表”的样子,然后再展示出来,刚才概念中提到的”文本格式化的能力”,也就是这个意思,其实这样说可能还是不太容易理解,不用着急,当你看到后面的”示例”时,自然会明白awk所擅长的”文本格式化”能力是什么。