[转载]awk、nawk、mawk、gawk的简答介绍

转载自:http://blog.sina.com.cn/s/blog_3d2d79aa0100h47h.htmlhtml

awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据能够来自标准输入一个或多个文件,或其它命令的输出(即管道)。它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更可能是做为脚原本使用。linux

awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操做。若是没有指定处理动做,则把匹配的行显示到标准输出 (屏幕),即默认处理动做是print;若是没有指定模式,则全部被操做所指定的行都被处理,即默认指定模式是所有。awk分别表明其做者姓氏的第一个字母。由于它的做者是三我的,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。正则表达式

像shell同样,awk也有好几种,常见的如awknawkmawkgawk,其中算法

awk:最初在1 9 7 7年完成,1 9 8 5年发表了一个新版本的awk,它的功能比旧版本加强了很多,awk 可以用很短的程序对文档里的资料作修改、比较、提取、打印等处理,若是使用C 或P a s c a l 等语言编写程序完成上述的任务会十分不方便并且很花费时间,所写的程序也会很大;shell

nawk: 在 20 世纪 80 年代中期,对 awk语言进行了更新,并不一样程度地使用一种称为 nawk(new awk) 的加强版本对其进行了替换。许多系统中仍然存在着旧的awk 解释器,但一般将其安装为 oawk (old awk) 命令,而 nawk 解释器则安装为主要的 awk 命令,也可使用 nawk 命令。Dr. Kernighan 仍然在对 nawk 进行维护,与 gawk 同样,它也是开放源代码的,而且能够免费得到;编程

mawk:mawk 是 awk 编程语言的解释器。awk语言在多媒体数据文件以及文本的检索和处理,算法的原型设计和试验都有普遍的使用。mawk带给awk新的概念,它实现了在《The AWK Programming Language》(Aho, Kernighan and Weinberger, The AWK Programming Language, Addison-Wesley Publishing, 1988.被认为是 AWK 手册。)中定义的 awk语言。mawk遵循 POSIX 1003.2 (草案 11.3)定义的 AWK 语言,包含了一些没有在AWK 手册中提到的特点,同时 mawk 提供一小部分扩展,另外听说mawk是实现最快的awk;编程语言

gawk: 是 GNU Project 的awk解释器的开放源代码实现。尽管早期的 GAWK 发行版是旧的 AWK 的替代程序,但不断地对其进行了更新,以包含 NAWK 的特性;函数

目前,你们都比较倾向于使用awk和gawk,本文中要介绍的awk是以GUN的gawk为例的。Ubuntu系统中的各类awk的选项设置,能够经过sudo update-alternatives --config awk来完成,实际上你经过手动修改软连接也能实现。Debian最小化安装的时候awk的连接是指向mawk的。工具

相关文章
相关标签/搜索