鍍金池/ 教程/ Linux/ AWK正則表達(dá)式
AWK環(huán)境安裝配置
AWK格式化打印
Awk教程
AWK控制流
AWK循環(huán)
AWK用戶自定義函數(shù)
AWK工作流程
AWK數(shù)組
AWK基本語法
AWK基本示例
AWK運(yùn)算符
AWK內(nèi)置函數(shù)
AWK內(nèi)置變量
AWK輸出重定向
AWK正則表達(dá)式

AWK正則表達(dá)式

AWK有非常強(qiáng)大和高效的處理正則表達(dá)式。一些復(fù)雜的任務(wù),可以使用簡單的正則表達(dá)式解決。任何命令行專家都知道正則表達(dá)式的威力。

本教程介紹使用合適的例子標(biāo)準(zhǔn)的正則表達(dá)式。

Dot(點(diǎn))

它匹配的行字符結(jié)束,除非任何單個(gè)字符。例如下面簡單的例子匹配 fin, fun, fan等。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

fun
fin
fan

行的開始

它匹配行的開始。比如下面的例子打印所有使用模式行的開始。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

There
Their

行結(jié)尾

行的末尾匹配。比如下面的例子打印帶有字母n結(jié)束的行。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

fun
fin
fan

匹配字符集

它被用來匹配只有一個(gè)幾個(gè)字符。比如下面的例子匹配模式Call 和Tall 但不是Ball。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Call
Tall

排他設(shè)置

在排他性設(shè)置插入否定設(shè)定在方括號字符。例如示例下面的只打印Ball。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Ball

變更

豎線允許正則表達(dá)式來進(jìn)行邏輯或運(yùn)算。比如下面的例子打印Ball 和 Call。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Call
Ball

零次或一次

它匹配零次或一次出現(xiàn)前面的字符。比如下面的例子匹配Colour以及Color。我們通過使用由u作為一個(gè)可選的字符?

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Colour
Color

零個(gè)或多個(gè)出現(xiàn)

它匹配零個(gè)或多個(gè)出現(xiàn)前面的字符。例如下面的例子匹配ca, cat, catt等等。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

ca
cat
catt

一個(gè)或多個(gè)出現(xiàn)

它匹配前面一個(gè)或多個(gè)出現(xiàn)的字符。比如下面的例子匹配2的一個(gè)或多個(gè)出現(xiàn)。

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

22
123
234
222

分組

括號()被用于分組和字符|被用于替代品。例如下面的正則表達(dá)式匹配任何含有Apple Juice 或 Apple Cake.

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

在執(zhí)行上面的代碼后,得到以下結(jié)果:

Apple Juice
Apple Cake

上一篇:AWK內(nèi)置變量下一篇:AWK基本語法