AWK-正規表現
AWKは、正規表現の処理において非常に強力で効率的です。多くの複雑なタスクは、単純な正規表現で解決できます。コマンドラインの専門家なら誰でも、正規表現の力を知っています。
この章では、適切な例を使用して標準の正規表現について説明します。
ドット
行末文字以外の任意の1文字に一致します。たとえば、次の例は一致しますfin, fun, fan 等
例
[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'
上記のコードを実行すると、次の結果が得られます-
出力
fun
fin
fan
行の開始
行頭と一致します。たとえば、次の例では、patternで始まるすべての行を出力します。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
文字セットに一致
複数の文字のうち1つだけを照合するために使用されます。たとえば、次の例はパターンに一致します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
変更
縦棒を使用すると、正規表現を論理的にOR演算できます。たとえば、次の例はBall そして Call。
例
[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'
このコードを実行すると、次の結果が得られます-
出力
Call
Ball
ゼロまたは1回の発生
前の文字の0回または1回の出現に一致します。たとえば、次の例は一致しますColour と同様 Color。私たちは作ったu を使用してオプションの文字として ?。
例
[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'
このコードを実行すると、次の結果が得られます-
出力
Colour
Color
ゼロ以上の発生
前の文字の0回以上の出現に一致します。たとえば、次の例は一致しますca, cat, catt, 等々。
例
[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'
このコードを実行すると、次の結果が得られます-
出力
ca
cat
catt
1つ以上の発生
前の文字の1つ以上のオカレンスと一致します。たとえば、以下の例は、1つ以上のオカレンスに一致します。2。
例
[jerry]$ echo -e "111\n22\n123\n234\n456\n222" | awk '/2+/'
上記のコードを実行すると、次の結果が得られます-
出力
22
123
234
222
グループ化
Parentheses ()グループ化と文字に使用されます| 代替に使用されます。たとえば、次の正規表現は、次のいずれかを含む行と一致しますApple Juice or Apple Cake。
例
[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk
'/Apple (Juice|Cake)/'
このコードを実行すると、次の結果が得られます-
出力
Apple Juice
Apple Cake