【コマンド詳細】拡張表現grep -Eの使い方とオプションまとめ

  • URLをコピーしました!
目次

grepの拡張正規表現オプション(-Eオプション)

GNUバージョンのgrepでは、通常の基本正規表現に加えて、拡張正規表現を使用することができます。
拡張正規表現は複雑なパターンの検索に便利で、複数の条件を柔軟に扱えるため、業務やログ解析などで重宝されます。
この機能を有効にするには、-Eオプションを指定します。-Eを使用することで、
grepは「egrep」と同様の動作をしますが、GNUバージョンではegrepgrep -Eは機能的に同等です。

オプション -E

オプション説明
-E拡張正規表現を使用して検索を行います。複数のパターンや特殊文字の扱いが容易になります。

拡張正規表現の使用例

複数パターンの検索(OR条件)

拡張正規表現では、パイプ記号 | を使って複数のパターンを指定することができます。

使用例

$ grep -E "error|fail|critical" logfile.txt

表示結果logfile.txt内で”error”、”fail”、”critical”のいずれかに一致する行が表示されます。

グループ化と繰り返し((){}

拡張正規表現を使うと、括弧 () でパターンをグループ化し、
{} でその出現回数を指定することができます。

使用例

$ grep -E "(error|fail){2}" logfile.txt

表示結果: “error”または”fail”が2回連続で現れる行が表示されます。

文字クラスの利用([]

拡張正規表現の[]で特定の文字セットを指定できます。
例えば、”[0-9]”は任意の数字を意味します。

使用例

$ grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2}" logfile.txt

表示結果logfile.txt内で”YYYY-MM-DD”の形式の日付(例えば”2024-11-04″)を含む行が表示されます。

開始と終了のアンカー(^$

^ は行の先頭、$ は行の末尾を表します。拡張正規表現を使うと、
特定の文字列で始まるまたは終わる行を見つけやすくなります。

使用例

$ grep -E "^error|critical$" logfile.txt

表示結果: 行の先頭が”error”、または行の末尾が”critical”の行が表示されます。

-Eオプションを使う際の注意点

  • 拡張正規表現では、|()などをエスケープする必要がありません。これは基本正規表現(grepの通常モード)との大きな違いです。
  • 拡張正規表現を使うことで、複雑な検索条件を簡潔に表現できますが、条件が複雑になると実行速度が遅くなる場合もあります。
    目次