![【Linux】再帰的な検索(grep)をする](/_astro/cover.rTNOxrKd_Z1Ithar.webp)
Linuxで再帰的な文字列検索をする場合はgrep
コマンドのr
オプションを用います。
文字列検索(再帰)
構文は以下の通りです。
grep -r [キーワード] [検索対象ディレクトリ]
grepの-r
オプションで再帰的に検索ができます。
キーワードに検索したい文字列を指定し、検索対象ディレクトリのパスを置き換えて実行します。
以下コマンドは、カレントディレクトリ配下のファイルをkeyword
で再帰検索します。
grep -r "keyword" ./
実行結果はファイルパスと該当箇所が出力されます。
特定ディレクトリを除外して検索
特定のディレクトリを除外する場合は--exclude-dir
オプションを利用します。
grep -r "keyword" ./ --exclude-dir=.git
複数ディレクトリを除外する場合はディレクトリを{}
で囲い,
(カンマ)で区切ります。
grep -r "keyword" ./ --exclude-dir={.git,node_modules}
特定のファイルを指定して検索
特定のファイルタイプを指定する場合は、--include
および--exclude
を指定します。
# .txtファイルに絞り込んで再帰検索
grep -r "keyword" ./ --include="*.txt"
# .logファイルを除外して再帰検索
grep -r "keyword" ./ --exclude="*.log"
# .txtファイル(.old.txtを除く)に絞り込んで再帰検索
grep -r "keyword" . --include="*.txt" --exclude="*.old.txt"
## keywork:検索文字列に置き換える。
ファイル名一覧取得
grepに-l
オプションを付けるとkeyword
で絞り込んだファイル名の一覧を取得することができます。
以下コマンドはカレントディレクトリ配下のファイルをkeyword
で再帰検索し、対象ファイルのパス一覧を取得します。
grep -rl "keyword" ./
各オプションまとめ
各オプションの意味は以下の通りです。
オプション | ロングオプション | 意味 |
---|---|---|
-r | —recursive | 再帰検索時に指定する |
-l | —files-with-matches | マッチするファイル名を検索する |
再帰的に検索した文字列を一括置換したい場合、こちらのリンクで紹介しています。
以上です。
よいITライフを。