awk工具使用说明

2026/1/13 6:52:27

Awk简单使用说明

第一节 awk简介 ............................................................................................................. 2 第二节 awk基础 ............................................................................................................. 3 第三节 awk程序语法 ..................................................................................................... 7

第一节 awk简介

awk语言是一种具有很强能力的模式匹配和过程语言。awk获取一个文件(或多个文件)来查找匹配特定模式的记录。当查到匹配后,即执行所指定的动作。作为一个程序员,你不必操心通过文件打开、循环读每个记录,控制文件的结束,或执行完后关闭文件。这些细节都是自动替你处理的.

awk自动读取文本文件中的每个记录(文本文件中每一行代表一个记录),把记录分成字段(默认情况下安空格分段),并在需要时进行类型转换。变量使用的方式确定了它的类型—不必声明变量的任何类型。当然,“标准的”C编程结构如if/else、do/while、for和while是支持的。awk不支持switch/case结构。awk支持C用于格式化输出的printf()还用于较简单输出的print命令。

一个例子:

1、有个文本文件xnmm.txt 内容如下图:

2、awk命令如下图:

运行这段命令回输出如下内容:

命令的作用:打印出xnmm.txt中的qq邮箱账号 分析哈:这段命令可以看成3部分组成:

(1)是awk命令,就不解释了。

(2)是awk程序源代码,这个必须用单引号引起来。这段代码可能会很长或者我们经常用,所以也可以保存在一个文本文件里,假如我们保存在 my.awk中的话,就可以这样调用:awk -f my.awk xnmm.txt。继续分析代码含义,awk程序主要由2部分组成(模式和动作),$1~/@qq.com/就是模式,模式返回true的话,就会执行后面的动作{print $1}。在这里,Awk会扫描xnmm.txt的每一

行,并且把每一行按照空格分成若干字段,$1代表第一个字段,依次类推,$0代表整个记录。$1~/@qq.com/就是说,第一个字段里面是否含有@qq.com字符,有就返回turn,那么就可以执行{print $1},代表打印当前记录的第一个字段

(3)是处理文件,也就是说我们要处理的数据的来源。后面会讲到,其他数据来源,比如一个ls命令后使用管道,在管道后使用awk命令,那么awk处理的数据就是ls输出的数据。

第二节awk基础

一、模式和动作

每个a w k语句由两部分组成:模式和动作。模式在动作执行时决定,当然动作是程序员要求发生什么。没有模式,动作总被执行(模式可以认为缺省值为t r u e”)。

有两种特定的模式(也称为块):B E G I N和E N D。从文件中读第一个记录前执行B E G I N代码,并用来初始化变量和设置像控制改变一类的事情。在到达文件结束后执行E N D代码,并用来清理请求(像在报告上输出最后的总数)。其他的模式是对从文件读出的每个记录进行测试。

一般的格式是B E G I N块在顶上,然后是任何模式/动作时,最后是E N D块在底下。这不是语言的要求,而只是大多数人所采用的一种方式(主要是可读性原因)。

B E G I N和E N D块是可选的,当你利用这些块时,最大限度使用一个。不要编码两个B E G I N块,也不要编码两个E N D块。

模式在动作之前指定。模式可以是输入记录的匹配部分的正则表达式(包含在一对斜杠/ /中)或是含有比较操作符的表达式。模式还可以是由表达式和正则表达式结合起来或一系列模式所组成的复合或复杂的模式。

动作被包含在花括号({ })内,可以由一个或多个语句组成。省略模式部分时,其缺省值为t r u e,即导致对文件中的每行执行动作。当省略动作时,其缺省值为p r i n t $ 0(输出整个记录)

1. 正则表达式模式

正则表达式是用来指定和匹配字符串的表示法。正则表达式是由字符(像字母

A、B和C—与输入的字符相符)和元字符组成。元字符是具有特殊含义的字符,这些字符不匹配其本身,但执行某种特殊的功能。如图:

看下面例子:

2. 比较操作符和模式

这些操作符是用来指定和比较值(包括字符串)的。正则表达式独自匹配输入记录的任何部分。通过把比较与正则表达式相结合,可以测试指定的字段。

最开始的例子就是啦 3. 复合模式操作符

这些操作符是用来把其他的模式(表达式或正则表达式)结合成复杂形式逻辑的表示法。


awk工具使用说明.doc 将本文的Word文档下载到电脑
搜索更多关于: awk工具使用说明 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219