4

grepという用語を検索するフォルダーで in bashを実行したいfoobar。次に、出現が見つかったファイル名行番号とともにすべての一致を出力したいと思います。これは可能ですか?

次のような出力が必要です。

{{filename}}:{{line_number}} - {{matched_text}}
4

4 に答える 4

9
grep -nrH 'regex' /dir/

-H-nファイル名を追加し、行番号を追加し、-r再帰的に使用するオプションです。

-Hファイルが1つしかない場合を除いて、ファイル名がなくてもファイル名を取得します。

-i大文字と小文字を区別しない場合に追加

-E拡張正規表現の追加

于 2012-06-01T19:44:19.840 に答える
3

-n または --line-number オプションを使用する

grep -n foobar
于 2012-06-01T18:48:30.593 に答える
1

はい; 試す: grep -nr "expression" /path/to/files/

于 2012-06-01T18:48:05.900 に答える
0

awkベースのソリューション:

awk '/REGEX/{print FILENAME":"FNR" - "$0}' PATH

再帰パス検索の場合、

find PATH-TO-START -type f -exec awk '/REGEX/{print FILENAME":"FNR" - "$0}' {} \;
于 2012-06-02T02:27:14.690 に答える