RHEL9 grepコマンドで複数ファイルから文字列を検索する
環境
RHEL 9.2
構文
grep [オプション] 検索パターン [ファイル…]
基本正規表現(BRE: basic-regexp)と拡張正規表現(ERE: extended-regexp)の違いを意識する必要があります。
grepは、デフォルトだと基本正規表現になります。
-Eオプションを利用すると拡張正規表現で検索できます。
基本正規表現
grep sed
拡張正規表現
grep -E egrep sed -r awk
操作例1 単一ファイルから検索
data/Http/test.phpというファイルで HttpKernel という文字列を含む行を表示する
$ grep “HttpKernel" data/Http/test.php
操作例2 複数ファイルから検索
1).パスを複数指定
data/Http/test.php と data/Console/test.php から検索
$ grep "data" data/Http/test.php data/Console/test.php
2).ディレクトリ指定
data/Httpというディレクトリ配下の全てのファイル で HttpKernel という文字列を含むファイルがあれば、
ファイル名 & 行番号 & 行内容 を表示します。
$ grep -nr "HttpKernel" data/Http
操作例3
–exclude-dir で検索除外するディレクトリを指定できます。
コマンド
$ grep -nr xxx . --exclude-dir={dist, .nuxt}