grep
という用語を検索するフォルダーで in bashを実行したいfoobar
。次に、出現が見つかったファイル名と行番号とともにすべての一致を出力したいと思います。これは可能ですか?
次のような出力が必要です。
{{filename}}:{{line_number}} - {{matched_text}}
grep -nrH 'regex' /dir/
-H
-n
ファイル名を追加し、行番号を追加し、-r
再帰的に使用するオプションです。
-H
ファイルが1つしかない場合を除いて、ファイル名がなくてもファイル名を取得します。
-i
大文字と小文字を区別しない場合に追加
-E
拡張正規表現の追加
-n または --line-number オプションを使用する
grep -n foobar
はい; 試す:
grep -nr "expression" /path/to/files/
awk
ベースのソリューション:
awk '/REGEX/{print FILENAME":"FNR" - "$0}' PATH
再帰パス検索の場合、
find PATH-TO-START -type f -exec awk '/REGEX/{print FILENAME":"FNR" - "$0}' {} \;