カテゴリ: Linux 更新日: 2026/04/20

Linuxのegrepコマンドとは?拡張正規表現で検索する方法を初心者向けに解説

Linuxのegrepコマンドとは?拡張正規表現で検索する方法
Linuxのegrepコマンドとは?拡張正規表現で検索する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Linuxで文字列を検索したいときに便利なコマンドってありますか?」

先生

「ありますよ。Linuxにはgrep(グレップ)という文字列検索コマンドがあります。そして、より高度な検索をしたいときはegrep(イーグレップ)が便利です。」

生徒

「egrepって普通のgrepと何が違うんですか?」

先生

「egrepは拡張正規表現(かくちょうせいきひょうげん)を使える点が大きな違いです。複雑な文字列パターンも簡単に検索できます。」

1. egrepコマンドとは?

1. egrepコマンドとは?
1. egrepコマンドとは?

egrepはLinuxで文字列検索を行うためのコマンドで、grepコマンドの拡張版です。grepが基本的な文字列検索に使えるのに対して、egrepはパイプ(|)、+、?、() などの拡張正規表現をそのまま使えるため、複雑な検索条件にも対応できます。

Linuxのテキスト検索を効率化したいときや、ログファイルから特定のパターンを抽出したい場合に非常に便利です。

2. egrepの基本的な使い方

2. egrepの基本的な使い方
2. egrepの基本的な使い方

egrepの基本構文は以下の通りです。


egrep [オプション] '検索パターン' ファイル名

例えば、sample.txtというファイルの中から「error」という文字列を検索する場合は次のように書きます。


egrep 'error' sample.txt
error: ファイルが見つかりません
warning: 設定に問題があります

3. 拡張正規表現の基本パターン

3. 拡張正規表現の基本パターン
3. 拡張正規表現の基本パターン

egrepでは通常の文字列検索だけでなく、以下のような拡張正規表現が使えます。

  • | :OR検索(例: apple|orange)
  • + :直前の文字の1回以上の繰り返し(例: a+)
  • ? :直前の文字の0回または1回の出現(例: colou?r)
  • () :グループ化(例: (cat|dog)s?)

これらを組み合わせることで、より柔軟な検索が可能になります。

4. ファイル内で複数パターンを検索する例

4. ファイル内で複数パターンを検索する例
4. ファイル内で複数パターンを検索する例

sample.txt内で「error」または「warning」を同時に検索したい場合、次のように書きます。


egrep 'error|warning' sample.txt
error: ファイルが見つかりません
warning: 設定に問題があります

このように|を使うと複数の文字列を簡単に検索できます。

5. ワイルドカードや文字の繰り返しを使った検索

5. ワイルドカードや文字の繰り返しを使った検索
5. ワイルドカードや文字の繰り返しを使った検索

egrepでは+や?を使って文字の繰り返しや任意文字の存在を指定できます。例えば「colou?r」とすると、colorとcolourの両方を検索できます。


egrep 'colou?r' sample.txt
color: 正常に処理されました
colour: イギリス式スペルもマッチ

さらに、a+のように書くと、aが1回以上続くパターンにマッチします。

6. ディレクトリ内の複数ファイルを検索する

6. ディレクトリ内の複数ファイルを検索する
6. ディレクトリ内の複数ファイルを検索する

特定のディレクトリ内の複数のテキストファイルから文字列を検索したいときは、ワイルドカードを使います。


egrep 'error|fail' /home/user/logs/*.log
error: データベース接続に失敗しました
fail: バックアップ処理に失敗しました

この方法で、複数ファイルから効率的に文字列検索ができます。

7. オプションを使って検索結果を見やすくする

7. オプションを使って検索結果を見やすくする
7. オプションを使って検索結果を見やすくする

egrepには便利なオプションがいくつかあります。代表的なものは以下です。

  • -i :大文字小文字を区別せずに検索
  • -n :行番号を表示
  • -r :ディレクトリを再帰的に検索

例えば大文字小文字を無視して検索する場合は次のようにします。


egrep -i 'Error|Warning' sample.txt
error: ファイルが見つかりません
warning: 設定に問題があります

8. パターンをファイルに書いて検索する方法

8. パターンをファイルに書いて検索する方法
8. パターンをファイルに書いて検索する方法

検索したいパターンが多い場合は、パターンをファイルに書いてegrepで指定できます。


cat patterns.txt
error
warning
fail

egrep -f patterns.txt sample.txt
error: ファイルが見つかりません
warning: 設定に問題があります
fail: バックアップ処理に失敗しました

これにより、検索パターンを整理して簡単に再利用できます。

9. まとめとして覚えておきたいegrepのポイント

9. まとめとして覚えておきたいegrepのポイント
9. まとめとして覚えておきたいegrepのポイント

egrepはLinuxの文字列検索コマンドで、拡張正規表現を使える点が最大の特徴です。複雑な文字列検索や複数パターンの検索、ディレクトリ内の検索など、幅広く使えます。オプションと組み合わせることで、検索結果をさらに見やすくすることも可能です。

Linux初心者でも、基本構文と簡単なパターンを覚えれば、ログファイルや設定ファイルの検索に活用できます。

まとめ

まとめ
まとめ

今回の記事では、Linuxのegrepコマンドについて、基本から応用まで詳しく解説しました。egrepgrepコマンドの拡張版で、拡張正規表現を活用することで複雑な文字列検索が簡単に行えます。基本構文はegrep [オプション] '検索パターン' ファイル名であり、複数の文字列を同時に検索したい場合は|を使い、文字の繰り返しや任意出現は+?で指定できます。また、ディレクトリ内の複数ファイル検索にはワイルドカードや-rオプションを活用すると効率的です。

さらに、検索結果を見やすくするために-iで大文字小文字を無視したり、-nで行番号を表示したりすることも可能です。複数の検索パターンを使う場合は、パターンをファイルにまとめて-fオプションで指定することで、管理や再利用も容易になります。

この記事で紹介した内容を活用すれば、Linuxでのログ解析や設定ファイルのチェック、プログラムの出力確認など、さまざまな場面で効率的に文字列検索が行えるようになります。egrepの基本から応用まで理解することで、Linux作業のスピードと正確性を格段に向上させることができます。

サンプルコマンドまとめ


# 単純な文字列検索
egrep 'error' sample.txt

# 複数パターン検索
egrep 'error|warning' sample.txt

# 繰り返し文字や任意文字を使った検索
egrep 'colou?r' sample.txt
egrep 'a+' sample.txt

# ディレクトリ内の複数ファイル検索
egrep 'error|fail' /home/user/logs/*.log

# 大文字小文字を無視して検索
egrep -i 'Error|Warning' sample.txt

# パターンファイルを使った検索
egrep -f patterns.txt sample.txt
先生と生徒の振り返り会話

生徒

「先生、今日はegrepについて詳しく学びましたけど、どんな場面で一番便利ですか?」

先生

「ログファイルや設定ファイルの文字列検索が一番便利ですね。特に複雑な条件で検索したい場合や複数パターンを同時に確認したいときに威力を発揮します。」

生徒

「なるほど、複数のパターンを同時に検索する場合は|を使ったり、文字の繰り返しを指定したりすればよいのですね。」

先生

「その通りです。また、-iオプションで大文字小文字を無視した検索や、-nで行番号を表示することで、結果がさらに見やすくなります。」

生徒

「複数のパターンをファイルにまとめて-fで検索する方法も便利そうですね。」

先生

「そうです。パターンをファイルにまとめることで管理や再利用が容易になり、作業効率が大幅に向上します。これらを組み合わせれば、Linuxでの文字列検索が格段にスムーズになります。」

生徒

「理解しました。egrepを使いこなせば、ログ解析や設定チェックがずっと効率的になりそうです。」

関連記事:
カテゴリの一覧へ
新着記事
New1
Linux
Linuxのシェルとは?コマンドを実行する仕組みを初心者向けに徹底解説【bash・zsh・ターミナル入門】
新規投稿
New2
基本情報技術者試験
光磁気ディスクとは何か?補助記憶装置の仕組みと特徴を初心者向けにわかりやすく解説
新規投稿
New3
基本情報技術者試験
パケットとは?初心者にもわかる意味・構造・役割をやさしく解説!
更新記事
New4
基本情報技術者試験
リバースブルートフォース攻撃とは?初心者向けに徹底解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
325
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.4
Java&Spring記事人気No4
基本情報技術者試験
SMTP
197
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!
No.5
Java&Spring記事人気No5
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
基本情報技術者試験
DHCP
180
DHCPとは?初心者でもわかるIPアドレス自動割り当ての仕組み
No.7
Java&Spring記事人気No7
情報セキュリティマネジメント試験
ソフトウェアとは何かを完全解説!初心者でもわかる基本と役割
No.8
Java&Spring記事人気No8
基本情報技術者試験
HTTP
146
HTTPとは?初心者にもわかりやすく仕組みを解説!Webの基本を学ぼう