カテゴリ: Linuxコマンド集 更新日: 2026/09/03

grep --excludeオプションの使い方|特定ファイルを検索対象から除外する方法を解説

grep --excludeオプション|特定のファイルを検索対象から除外する
grep --excludeオプション|特定のファイルを検索対象から除外する

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

生徒

「grepってファイルの中から文字列を探せるのは分かってきたんですけど、検索したくないファイルがあるときはどうすればいいですか?」

先生

「そんなときは--excludeオプションを使うと便利です。指定したファイル名や拡張子を検索対象から除外できますよ。」

生徒

「おお、それなら大量のファイルがあっても、余計なものを省けますね!どうやって使うんですか?」

先生

「それでは、--excludeの使い方を具体例を交えて説明していきましょう。」

1. grepとは?再確認しよう

1. grepとは?再確認しよう
1. grepとは?再確認しよう

grep(グレップ)は、Linuxでテキストファイルの中から特定の文字列を検索するコマンドです。複数のファイルからでも、一気に検索できます。

たとえば、現在のディレクトリ内のファイルすべてから「TODO」という単語を探す場合、次のように実行します。


grep "TODO" *
main.c: // TODO: エラー処理を追加する
readme.txt: - TODO: ドキュメントを書く

このように、検索にヒットしたファイル名と内容が表示されます。

2. grep --excludeオプションとは?

2. grep --excludeオプションとは?
2. grep --excludeオプションとは?

--excludeオプションは、grepで再帰検索やワイルドカード検索を行うときに、特定のファイルを検索から外すためのオプションです。

例えば、一時ファイル(.bak~が付いたファイル)や、バックアップファイルを無視したいときに役立ちます。

3. grep --excludeの基本的な使い方

3. grep --excludeの基本的な使い方
3. grep --excludeの基本的な使い方

では実際に、拡張子.logのファイルだけ除外して、それ以外のファイルから検索したい場合は、次のように書きます。


grep --exclude="*.log" "ERROR" *
config.txt: ERROR: 設定ファイルが見つかりません
main.c: // ERROR: 未初期化変数

この例では、*.logという指定により、ログファイルはすべて検索対象から外れています。

4. ディレクトリを再帰的に検索する際の除外

4. ディレクトリを再帰的に検索する際の除外
4. ディレクトリを再帰的に検索する際の除外

grepの-rオプション(または--recursive)と--excludeを組み合わせることで、サブディレクトリを含めた再帰検索でも、除外ができます。


grep -r --exclude="*.bak" "password" .
./users.txt: password: 1234
./config/app.conf: db_password=secret

.bakで終わるバックアップファイルは検索されていません。

5. 複数のファイルパターンを除外するには?

5. 複数のファイルパターンを除外するには?
5. 複数のファイルパターンを除外するには?

--excludeオプションは、複数回使うことができます。たとえば、*.log*.tmpを両方除外したい場合は、次のように書きます。


grep -r --exclude="*.log" --exclude="*.tmp" "error" .
./src/app.py: print("error: ファイルがありません")

また、ワイルドカードを使って広い範囲のファイル名を指定することも可能です。

6. --exclude-dirとの違い

6. --exclude-dirとの違い
6. --exclude-dirとの違い

--excludeファイル単位で除外しますが、--exclude-dirディレクトリ単位で除外します。

たとえば、node_modulesディレクトリを検索対象から完全に除外したい場合は、次のようにします。


grep -r --exclude-dir="node_modules" "import" .
./src/main.js: import React from 'react';

このように、検索対象を細かくコントロールすることで、無駄なファイルを処理せずに済むようになります。

7. 実務でよくある使い方:grep + exclude + include

7. 実務でよくある使い方:grep + exclude + include
7. 実務でよくある使い方:grep + exclude + include

--excludeは、逆に「特定のファイルだけを対象にしたい」ときに使う--includeと一緒に使うこともできます。

たとえば、*.txtだけ検索して、secret.txtは除外したい場合は、次のように書けます。


grep -r --include="*.txt" --exclude="secret.txt" "login" .
./info.txt: login: admin
./memo.txt: login: guest

こうすることで、検索対象の拡張子やファイル名を柔軟に制御できます。

8. grep --excludeが便利なシーン

8. grep --excludeが便利なシーン
8. grep --excludeが便利なシーン

以下のようなシーンで--excludeは特に便利です。

  • 大量のログファイルの中から、特定の種類だけ検索対象にしたくないとき
  • バックアップファイルを無視して検索スピードを上げたいとき
  • 一時的に出力されたファイルを除外して内容をチェックしたいとき

grepコマンドは万能ですが、対象が多いとノイズも多くなります。--excludeを使えば、必要なファイルだけを正確に検索できて、とても効率的になります。

関連記事:
カテゴリの一覧へ
新着記事
New1
システム情報・プロセス管理
ps -Aオプション|すべてのプロセスを表示する
New2
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
New3
ファイル・ディレクトリ操作
rm -fオプションとは?Linuxで存在しないファイルでもエラーを出さず強制削除する方法
New4
演算と比較
シェルスクリプトでファイル存在チェックを行う比較演算子まとめ
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門