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

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

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

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

📌 他のLinuxコマンドもまとめて確認したい方へ
ファイル操作・検索・テキスト処理など用途別に整理した総合まとめはこちら。
Linuxコマンド大全|カテゴリ別まとめ+コマンド詳細リンク集(チートシート付き)

オプション -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の通常モード)との大きな違いです。
  • 拡張正規表現を使うことで、複雑な検索条件を簡潔に表現できますが、条件が複雑になると実行速度が遅くなる場合もあります。

LPIC Lv1準拠!Linuxコマンド演習(基礎編)Vol.1【全10問】

厳選された100問のコマンド問題から、毎回ランダムで10問を出題。
挑戦するたびに新しい問題に出会えるので、真の実力が試されます。

1 / 10

ファイルのアクセス権(パーミッション)を「rwxr-xr-x」にする数値指定のchmodコマンドは?

2 / 10

ファイルの中から特定の正規表現(文字列)を含む行を検索するコマンドは?

3 / 10

ファイルを指定したパターンに基づいて検索し、見つかったものに別のコマンドを実行できるコマンドは?

4 / 10

既存のグループ名を変更したり、GIDを変更したりするコマンドは?

5 / 10

ディレクトリとその中身を、再帰的に(一括で)コピーするcpコマンドのオプションは?

6 / 10

テキストファイルをアルファベット順や数値順に並べ替えるコマンドは?

7 / 10

プロセスの親子関係をツリー状に表示するコマンドは?

8 / 10

実行しようとしているコマンドが、どのディレクトリにある実行ファイルかを表示するコマンドは?

9 / 10

ファイル「file1」に対するシンボリックリンク「link1」を作成するコマンドは?

10 / 10

Debian系(Ubuntuなど)でパッケージ情報を最新に更新(カタログ更新)するコマンドは?

あなたのスコアは

平均スコアは 73%

0%

目次