在这篇文章中,我们将看到许多小的,甚至没有什么意义的例子,但他们能够验证awk程序脚本的主要特点。当awk读入一行时,它试图匹配脚本中的每个模式匹配规则。只有与一个特定的模式相匹配的输入行才能成为操作对象。如果没有指定操作,与模式相匹配的输入行将被打印出来(执行打印语句是一个默认操作)。参阅下面的脚本:/^$/ { print "This is a blank line." } 该脚本表示:如果输入行为空,那么打印"This is a blank line" 。这里的模式为一个正则表达式,用来表示一个空行。这个处理和我们以前所见到的一样,只包含一条print语句。如果我们将这个脚本放在一个称为awkscr的文件中,并使用名为test的输入文件,这个文件中包含3个空行,然后使下面的命令执行这个脚本:$ awk -f awkscr test This is a blank line. This is a blank line. This is a blank line. (从这里开始,我们将假定脚本放在一个单独的文件中,并使用-f命令行选项来调用。)这个结果告诉我们在test中有3个空行,脚本忽咯了非空的行。给以上的脚本加入几个新的规则。现在的脚本要对输入进行分析,并将他们归类为整数、字符串或空行。/[0-9]+/ { print "That is an integer" } /[A-Za-z]+/ { print "This is a string" } /^$/ { print "This is a blank line." } 总的思想是,如果一个输入行能够和任何一个模式匹配,那么就执行相关的print语句。元字符+是正则表达式元字符拓展集中的一部分,它表示"一个或更多"。因此,包含一个或多个数字序列的行将被看作是一个整数。以下是一个使用标准输入的运行示例:$ awk -f awkscr 4 That is an integer t This is a string 4T That is an integer This is a string RETURN This is a blank line. 44 That is an integer CTRL-D $ 注意,输入"4T"被标识为既是整数又是字符串。一行可以匹配一条或多条规则。你可以编写一个更严格的规则以防止一行与多条规则相匹配。也可以编写操作来跳过脚本中的其他部分。--------------------------------------分割线 --------------------------------------AWK简介及使用实例 http://www.linuxidc.com/Linux/2013-12/93519.htmAWK 简介和例子 http://www.linuxidc.com/Linux/2012-12/75441.htmShell脚本之AWK文本编辑器语法 http://www.linuxidc.com/Linux/2013-11/92787.htm正则表达式中AWK的学习和使用 http://www.linuxidc.com/Linux/2013-10/91892.htm文本数据处理之AWK 图解 http://www.linuxidc.com/Linux/2013-09/89589.htm如何在Linux中使用awk命令 http://www.linuxidc.com/Linux/2014-10/107542.htm文本分析工具-awk http://www.linuxidc.com/Linux/2014-12/110939.htm--------------------------------------分割线 --------------------------------------本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118630.htm