
スポンサーリンク
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ライフを!