
- AWK 教程
- AWK - 首頁
- AWK - 概述
- AWK - 環境
- AWK - 工作流程
- AWK - 基本語法
- AWK - 基本示例
- AWK - 內建變數
- AWK - 運算子
- AWK - 正則表示式
- AWK - 陣列
- AWK - 控制流
- AWK - 迴圈
- AWK - 內建函式
- AWK - 使用者自定義函式
- AWK - 輸出重定向
- AWK - 美化輸出
- AWK 有用資源
- AWK - 快速指南
- AWK - 有用資源
- AWK - 討論
AWK - 正則表示式
AWK 在處理正則表示式方面非常強大且高效。許多複雜的任務可以透過簡單的正則表示式來解決。任何命令列專家都知道正則表示式的強大功能。
本章將介紹標準正則表示式並提供相應的示例。
點
它匹配任何單個字元,但換行符除外。例如,以下示例匹配fin、fun、fan等。
示例
[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'
執行上述程式碼後,您將獲得以下結果:
輸出
fun fin fan
行首
它匹配行首。例如,以下示例列印所有以模式The開頭的行。
示例
[jerry]$ echo -e "This\nThat\nThere\nTheir\nthese" | awk '/^The/'
執行此程式碼後,您將獲得以下結果:
輸出
There Their
行尾
它匹配行尾。例如,以下示例列印以字母n結尾的行。
示例
[jerry]$ echo -e "knife\nknow\nfun\nfin\nfan\nnine" | awk '/n$/'
輸出
執行此程式碼後,您將獲得以下結果:
fun fin fan
字元集匹配
它用於匹配多個字元中的一個。例如,以下示例匹配模式Call和Tall,但不匹配Ball。
示例
[jerry]$ echo -e "Call\nTall\nBall" | awk '/[CT]all/'
輸出
執行此程式碼後,您將獲得以下結果:
Call Tall
排除集
在排除集中,脫字元號(^)否定方括號中字元集。例如,以下示例僅列印Ball。
示例
[jerry]$ echo -e "Call\nTall\nBall" | awk '/[^CT]all/'
執行此程式碼後,您將獲得以下結果:
輸出
Ball
替換
豎線(|)允許正則表示式進行邏輯或運算。例如,以下示例列印Ball和Call。
示例
[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'
執行此程式碼後,您將獲得以下結果:
輸出
Call Ball
零次或一次出現
它匹配前一個字元的零次或一次出現。例如,以下示例匹配Colour以及Color。我們使用?將u設為可選字元。
示例
[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'
執行此程式碼後,您將獲得以下結果:
輸出
Colour Color
零次或多次出現
它匹配前一個字元的零次或多次出現。例如,以下示例匹配ca、cat、catt等。
示例
[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'
執行此程式碼後,您將獲得以下結果:
輸出
ca cat catt
一次或多次出現
它匹配前一個字元的一次或多次出現。例如,以下示例匹配2的一次或多次出現。
示例
[jerry]$ echo -e "111\n22\n123\n234\n456\n222" | awk '/2+/'
執行上述程式碼後,您將獲得以下結果:
輸出
22 123 234 222
分組
圓括號 ()用於分組,字元|用於備選。例如,以下正則表示式匹配包含Apple Juice或Apple Cake的行。
示例
[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk '/Apple (Juice|Cake)/'
執行此程式碼後,您將獲得以下結果:
輸出
Apple Juice Apple Cake
廣告