开发手册 欢迎您!
软件开发者资料库

AWK - 正则表达式

AWK正则表达式 - 学习AWK编程以及如何开发环境,概述,工作流,基本语法,基本示例,内置变量,运算符,正则表达式,数组,控制流,循环,内置函数,用户定义函数,输出重定向,漂亮的印刷。

AWK在处理正则表达式方面非常强大和高效.使用简单的正则表达式可以解决许多复杂的任务.任何命令行专家都知道正则表达式的强大功能.

本章介绍了带有合适示例的标准正则表达式.

Dot

它匹配除行尾字符之外的任何单个字符.例如,以下示例匹配 fin,fun,fan 等.

示例

[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'

在执行上述代码时,您得到以下结果 :

输出

funfinfan

开始of line

它匹配行的开头.例如,以下示例打印以模式 开头的所有行.

示例

[jerry]$ echo -e "This\nThat\nThere\nTheir\nthese" | awk '/^The/'

执行此代码后,您将得到以下结果 :

输出

ThereTheir

行尾

它匹配行尾.例如,以下示例打印以字母 n 结尾的行.

示例

[jerry]$ echo -e "knife\nknow\nfun\nfin\nfan\nnine" | awk '/n$/'

输出

执行此代码后,您将得到以下结果 :

funfinfan

匹配字符集

它仅用于匹配多个字符中的一个.例如,以下示例匹配模式调用但不匹配.

示例

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[CT]all/'

输出

执行此代码后,您将得到以下结果 :  ;

CallTall

独家套装

在独占集中,克拉否定方括号中的字符集.例如,以下示例仅打印 Ball .

示例

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[^CT]all/'

执行此代码后,您将得到以下结果 :

输出

Ball

更改

垂直条允许对正则表达式进行逻辑OR运算.例如,以下示例打印 Ball 调用.

示例

[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'

执行此代码后,您将得到以下结果 :

输出

CallBall

零或一次出现

匹配前一个字符的零次或一次匹配.例如,以下示例匹配颜色以及颜色.我们使用 u 作为可选字符.

示例

[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'

执行此代码后,您将得到以下结果 :

输出

ColourColor

零次或多次出现

它匹配前一个字符的零次或多次出现.例如,以下示例匹配 ca,cat,catt,等.

示例

[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'

执行此代码后,您将得到以下结果 :

输出

cacatcatt

One或更多次出现

它匹配前一个字符的一个或多个匹配项.例如,下面的示例匹配 2 的一个或多个匹配项.

示例

[jerry]$ echo -e "111\n22\n123\n234\n456\n222"  | awk '/2+/'

在执行上述代码时,您得到以下结果 :

输出

22123234222

分组

圆括号()用于分组和字符|用于替代品.例如,以下正则表达式匹配包含 Apple Juice或Apple Cake 的行.

示例

[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk    '/Apple (Juice|Cake)/'

执行此代码后,您将得到以下结果 :

输出

Apple JuiceApple Cake