awk、gawk、nawk、mawk的简单介绍

原创 2016年05月31日 17:32:07

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

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 等语言编写程序完成上述的任务会十分不方便而且很花费时间,所写的程序也会很大;

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的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

awk、nawk、mawk、gawk的简答介绍

awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出(即管道)。它支持用户自定义函数和 动态正则表达式等先进功能,是linu...
  • u013152895
  • u013152895
  • 2015年05月31日 14:22
  • 1300

awk命令行参数

直接举个例子来说明 code lang="powershell"> $ cat datafile northwest  NW  Joel Craig     3.0   .98   3    4...
  • xiyangyang052
  • xiyangyang052
  • 2015年05月17日 19:43
  • 425

Linux文本处理—awk gawk命令的使用

AWK 是一种文本处理和模式匹配语言,所以它通常称为数据驱动的 语言,程序语句描述需要进行匹配和处理的输入数据,而不是程序操作步骤的序列,在许多语言中都是这样的。AWK 程序在其输入数据中搜索包含模式...
  • yming0221
  • yming0221
  • 2013年09月27日 23:06
  • 3067

gawk(awk)的用法案例

本文首先简单介绍一个gawk和awk的区别,然后是一点基本使用流程,最后是自己做的一个分析数据文件的脚本代码,供大家参考。另外想了解基本流程的入门知识的可以下载附件pdf格式的awk入门手册。 祝我们...
  • wu020708
  • wu020708
  • 2016年08月24日 15:31
  • 2043

Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !

部署好cygwin,编译一下NDK自带的sample,报错:“ Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to ...
  • dreambegin
  • dreambegin
  • 2012年02月07日 21:22
  • 5395

1. awk, gawk命令使用

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的...
  • zhouyongsdzh
  • zhouyongsdzh
  • 2014年07月15日 19:15
  • 2097

AWK Vs NAWK Vs GAWK

Awk是操作和处理文本文件的强有力的语言,当行在文本文件以记录的格式最有帮助,等。一个记录包含各种各样的域被分隔符隔开即使当输入文件不是记录格式的,你仍然可以使用awk做一些基本的数据处理,你可以用a...
  • qianguozheng
  • qianguozheng
  • 2011年08月30日 13:05
  • 1157

linux下安装awk

sudo apt-get install gawk 注意名称
  • wsclinux
  • wsclinux
  • 2016年01月12日 16:38
  • 2131

Windows上GAWK的使用(一)

现在经常要处理到一些日志数据,对这些数据进行分析处理,但首先要对日志数据进行etl处理,如果简单的数据格式处理,使用gawk是最理想不过了,下面我们就介绍如何使用gawk,对数据进行e(extract...
  • Chinamming
  • Chinamming
  • 2013年12月07日 01:01
  • 1675

正则gawk --re-interval

cat 1.txt|gawk --re-interval -F '\t' '{if($19~/^[a-z0-9]{8}$/||$19~/^[A-Z]{5}$/)print}' > 1_end.txt
  • WOSHICSDN7547
  • WOSHICSDN7547
  • 2015年03月03日 14:14
  • 430
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:awk、gawk、nawk、mawk的简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)