Awk-regular-expressions
AWK-正規表現
AWKは、正規表現の処理において非常に強力で効率的です。 単純な正規表現を使用すると、多くの複雑なタスクを解決できます。 コマンドラインのエキスパートなら誰でも、正規表現の力を知っています。
この章では、標準の正規表現と適切な例を取り上げます。
Dot
行末文字を除く任意の単一文字に一致します。 たとえば、次の例は fin、fun、fan などに一致します。
例
上記のコードを実行すると、次の結果が得られます-
出力
行頭
行頭と一致します。 たとえば、次の例は、パターン The で始まるすべての行を出力します。
例
このコードを実行すると、次の結果が得られます-
出力
行末
行末に一致します。 たとえば、次の例では、文字 n で終わる行を印刷します。
例
出力
このコードを実行すると、次の結果が得られます-
一致する文字セット
これは、複数の文字のうち1つだけを照合するために使用されます。 たとえば、次の例はパターン Call および Tall に一致しますが、 Ball には一致しません。
例
出力
このコードを実行すると、次の結果が得られます-
専用セット
排他セットでは、カラットは角括弧内の文字セットを無効にします。 たとえば、次の例では Ball のみが出力されます。
例
このコードを実行すると、次の結果が得られます-
出力
変更
垂直バーを使用すると、正規表現を論理的にOR演算できます。 たとえば、次の例では、 Ball および Call が出力されます。
例
このコードを実行すると、次の結果が得られます-
出力
ゼロまたは1つの発生
直前の文字のゼロまたは1回の出現に一致します。 たとえば、次の例は Color と Color に一致します。 ?*を使用して、オプション文字として *u を作成しました。
例
このコードを実行すると、次の結果が得られます-
出力
ゼロ以上の発生
直前の文字の0回以上の出現に一致します。 たとえば、次の例は* ca、cat、catt、*などに一致します。
例
このコードを実行すると、次の結果が得られます-
出力
1つ以上の発生
直前の文字の1回以上の出現に一致します。 たとえば、以下の例は、1つ以上の 2 の出現に一致します。
例
上記のコードを実行すると、次の結果が得られます-
出力
グルーピング
括弧()*はグループ化と文字|に使用されます。は代替に使用されます。 たとえば、次の正規表現は、 *Apple JuiceまたはApple Cake を含む行に一致します。
例
このコードを実行すると、次の結果が得られます-