AWK 是该编程语言自己的名称,它编写于 1977 年。其名称是三个主要做者的姓的首字母缩写:Drs. A. Aho、P. Weinberger 和 B. Kernighan。html
由于 AWK 是一种文本处理和模式匹配语言,因此它一般称为数据驱动的语言,程序语句描述须要进行匹配和处理的输入数据,而不是程序操做步骤的序列,在许多语言中都是这样的。AWK 程序在其输入数据中搜索包含模式的记录、对该记录执行指定的操做,直到程序到达输入的末尾。linux
AWK 语言是一种 UNIX 备用工具,它是一种功能强大的文本操做和模式匹配语言,特别适用于进行信息检索,这使得它很是适合用于当今的数据库驱动的应用程序。数据库
虽然基本在linux的发行版中都没有默认安装gawk程序,可是我用的腾讯云的机器上是已经安装了,腾讯云默认安装了不少软件。编程
我仍是比较喜欢用ubuntu的,可使用apt-get install 安装,在mac中能够用 brew install,或者你能够下载了编译安装!ubuntu
gawk程序让流编辑迈上了一个新的台阶,它 提供了一种编程语言而不仅是编辑器命令。经常使用来从大文本文件中提取数据元素,并将它们格式化成可读的 报告。在gawk编程语言中,你能够作下面的事情:编程语言
在上面的截图中,已经展现了gawk的用法,和一些功能参数。编辑器
gawk会将以下变量分配给它在文本行中发现的数据字段,$0表明整个文本行;$1表明文本行中的第1个数据字段; $2表明文本行中的第2个数据字段; $n表明文本行中的第n个数据字段。awk中默认的字段分隔符是任意的空白字符。工具
AWK 程序由规则 组成,它们是一些模式,后面跟着由换行分隔的操做。当 AWK 执行一条规则时,它在输入记录中搜索给定模式的匹配项,而后对这些记录执行给定的操做。命令行
好比我用上次那个文本 testfilecode
使用gawk '{print $4}' testfile
除了print操做,咱们还可使用其余的操做
若是你对分隔符有特殊的要求,那么你还可使用 -F后面接分隔符,好比gawk -F: '{print $1}' /etc/passwd
你也能够组合使用命令行,好比echo "My name is Rich" | gawk '{$4="Christine"; print $0}'
第一条命令会给字段变量$4赋值。第二条命令会打印整个数据字段。
gawk可使用BEGIN在处理数据前或者处理后END执行脚本。
在 GAWK 中,其模式匹配机制相似于 egrep
命令的模式匹配机制。要仅输出那些匹配模式的记录,能够在规则中指定该模式,使用斜杠字符括起来。
awk '/dog2/ { print }' testfile 去匹配下面的记录
能够写成下面的多个匹配 awk '/dog2/ && /fox/ { print }' testfile
虽然awk和gawk有着强大的功能,可是用的不是不少,暂时就先写这么多吧!
参考:
http://www.runoob.com/linux/linux-comm-awk.html
https://www.cnblogs.com/xudong-bupt/p/3721210.html