AWK - 正则表达式

AWK - 正则表达式 首页 / Awk入门教程 / AWK - 正则表达式

AWK在处理正则表达式方面非常强大且高效,使用简单的正则表达式可以解决许多复杂的任务。

Dot 点

它匹配行尾字符以外的任何单个字符,以下示例匹配 finfunfan 等。

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

执行上述代码后,您将获得以下输出-

fun
fin
fan

行开始

它与行首匹配。以下示例将打印所有以模式 The 开头的行。

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

在执行此代码时,您将获得以下输出-

无涯教程网

There
Their

行结束

它与行尾匹配。如,以下示例显示以字母 n 结尾的行。

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

在执行此代码时,您将获得以下输出-

无涯教程网

fun
fin
fan

匹配字符集

它仅用于匹配几个字符中的一个,以下示例匹配模式 Call 和 Tall ,但不匹配 Ball 。

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-regular-expressions.html

来源:LearnFk无涯教程网

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

在执行此代码时,您将获得以下输出-

无涯教程网

Call
Tall

排除设置

在排除设置中否定了方括号中的字符集。以下示例仅打印Ball。

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

在执行此代码时,您将获得以下输出-

无涯教程网

Ball

竖线

竖线允许对正则表达式进行逻辑"or"运算。如下面的示例打印 Ball 和 Call 。

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

在执行此代码时,您将获得以下输出-

无涯教程网

Call
Ball

零次或一次

它匹配零个或一个出现的前一个字符,如,以下示例匹配颜色和颜色。我们已经使用?将 u 设置为可选字符。

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

在执行此代码时,您将获得以下输出-

无涯教程网

Colour
Color

零次或多次

它匹配零个或多个出现的前一个字符。以下示例匹配 ca,cat,catt等,依此类推。

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

在执行此代码时,您将获得以下输出-

无涯教程网

ca
cat
catt

一种或多种

它与一个或多个先前字符匹配,下面的示例匹配一个或多个 2 的出现。

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

执行上述代码后,您将获得以下输出-

22
123
234
222

分组

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

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

在执行此代码时,您将获得以下输出-

无涯教程网

Apple Juice
Apple Cake

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

持续交付36讲 -〔王潇俊〕

NLP实战高手课 -〔王然〕

React Hooks 核心原理与实战 -〔王沛〕

手把手带你写一门编程语言 -〔宫文学〕

超级访谈:对话汤峥嵘 -〔汤峥嵘〕

技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕

云原生架构与GitOps实战 -〔王炜〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)