【Linux】grepコマンドで再帰的な検索をする方法

【Linux】grepコマンドで再帰的な検索をする方法

記事の文字数:1201

Linuxで再帰的な検索をする場合は、grepコマンドのrオプションを利用します。またlオプションと組み合わせることで、該当ファイルの一覧も取得することができます。


スポンサーリンク

Linuxで再帰的な文字列検索をする場合はgrepコマンドのrオプションを用います。

文字列検索(再帰)

構文(再帰検索)

構文は以下の通りです。

構文
grep -r [キーワード] [検索対象ディレクトリ]

grepの-rオプションを指定して再帰的な検索ができます。
キーワードに検索したい文字列を指定し、検索対象ディレクトリのパスを置き換えて実行します。

コマンド例(再帰検索)

以下コマンドは、カレントディレクトリ配下のファイルをkeywordで再帰検索します。

実行コマンド
grep -r "keyword" ./

実行結果はファイルパスと該当箇所が出力されます。

特定ディレクトリを除外して再帰検索

特定のディレクトリを除外する場合は--exclude-dirオプションを利用します。

構文(ディレクトリを除外して再帰検索)

ディレクトリを除外して再帰検索する構文は以下の通りです。

構文
grep -r [キーワード] [検索対象ディレクトリ] --exclude-dir=[除外対象のディレクトリ]

コマンド例(.gitを除外する)

以下コマンド例では.gitファイルを除外して、keywordで再帰検索をします。

実行コマンド
grep -r "keyword" ./ --exclude-dir=.git

コマンド例(.git,node_modulesを除外する)

複数ディレクトリを除外する場合はディレクトリを{}で囲い,(カンマ)で区切ります。

実行コマンド
grep -r "keyword" ./ --exclude-dir={.git,node_modules}

特定のファイルを指定して再帰検索

特定のファイルタイプを指定する場合は、--includeおよび--excludeを指定します。

構文

絞り込みおよび除外の構文は、それぞれ以下の通りです。

対象のファイルタイプで絞り込んで再帰検索

構文
grep -r [キーワード] ./ --include=[検索対象]

対象のファイルタイプを除外して再帰検索

構文
grep -r [キーワード] ./ --exclude=[除外対象]

対象のファイルタイプで絞り込む&除外して再帰検索

構文
grep -r [キーワード] ./ --include=[検索対象] --exclude=[除外対象]

コマンド例(ファイル指定)

絞り込みおよび除外のコマンド例です。
keywordは検索文字列に置き換えてご利用ください。

.txtファイルに絞り込んで再帰検索

実行コマンド
grep -r "keyword" ./ --include="*.txt"

.logファイルを除外して再帰検索

実行コマンド
grep -r "keyword" ./ --exclude="*.log"

.old.txtを除いた.txtファイルに絞り込んで再帰検索

実行コマンド
grep -r "keyword" . --include="*.txt" --exclude="*.old.txt"

ファイル名一覧取得

grepに-lオプションを付けると[キーワード]で絞り込んだファイル名の一覧を取得することができます。

構文(ファイル名一覧取得)

構文
grep -rl [キーワード] ./

コマンド例(ファイル名一覧取得)

以下コマンドはカレントディレクトリ配下のファイルをkeywordで再帰検索し、対象ファイルのパス一覧を取得します。

実行コマンド
grep -rl "keyword" ./

各オプションまとめ

各オプションの意味は以下の通りです。

オプションロングオプション意味
-r—recursive再帰検索時に指定する
-l—files-with-matchesマッチするファイル名を検索する

再帰的に検索した文字列を一括置換したい場合、こちらのリンクで紹介しています。


以上で本記事の解説を終わります。
よいITライフを!
スポンサーリンク
Scroll to Top