awk模式匹配
在这篇文章中,人们将见到很多小的,以至于没什么实际意义的事例,但她们可以认证awk程序流程脚本制作的关键特性。
当awk读入每行时,它视图配对脚本制作中的每一模式匹配标准。只能与1个特殊的方式相符合的键入行能够变成实际操作构造函数。如果不是特定实际操作,与方式相符合的键入已然被复印出去(实行复印句子是1个默认设置实际操作)。参阅下边的脚本制作:
/^$/ { print "This is a blank line." }
该脚本制作表达:要是键入个人行为空,那麼复印"This is a blank line" 。这儿的方式为1个正则表达式,用于表达1个空行。这一解决和人们之前所看到的相同,只包括这条print句子。
要是人们将这一脚本制作放到1个称之为awkscr的文档中,并应用名叫test的键入文档,这一文档中包括3个空行,随后使下边的指令实行这一脚本制作:
$ awk -f awkscr test
This is a blank line.
This is a blank line.
This is a blank line.
(从这里开始,人们将假设脚本制作放到1个独立的文档中,并应用-f命令行选择项来启用。)这一結果告诉他人们在test中有3个空行,脚本制作忽咯了非空的行。
给左右的脚本制作添加好多个新的标准。如今的脚本制作要对键入开展剖析,并将她们分类为自然数、字符串或空行。
/[0-9]+/ { print "That is an integer" }
/[A-Za-z]+/ { print "This is a string" }
/^$/ { print "This is a blank line." }
总体观念是,要是1个键入行可以和一切1个模式匹配,那麼就实行有关的print句子。元字符+是正则表达式元字符扩展集中化的部分,它表达"1个或大量"。因而,包括1个或好几个大数字序列的已然被当作是1个自然数。下列是1个应用规范键入的运作实例:
$ 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"被标志为即是自然数也是字符串。每行能够配对这条或好几条标准。你能撰写1个更严苛的标准以避免每行与好几条标准相符合。还可以撰写实际操作来绕过脚本制作中的别的一部分。
相关文章
- 1条评论
- 痛言岛徒2022-05-29 10:09:20
- is is a blank line" 。这儿的方式为1个正则表达式,用于表达1个空行。这一解决和人们之前所看到的相同,只包括这条print句子。要是人们将这一脚本制作放到1个称之为awkscr的文档中,并应用名叫test的键入文档,这一文