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}

 

IT

Posted by arkgame