ディレクトリ内の複数のファイルから複数の文字列を検索し、見つかった文字列とそのファイル名を印刷します。

ディレクトリ内の複数のファイルから複数の文字列を検索し、見つかった文字列とそのファイル名を印刷します。

私は約500個の文字列を持っていて、その文字列を含むファイルをディレクトリから検索し、この文字列を含むファイル名を取得したいと思います。これまで私は次のものを使用しました。

find -name 'LYFNRE.*' -exec grep -f file1.txt {} \; -print

しかし、問題は、1つの文字列が複数のファイルで見つかる可能性があるため、出力が大きいため、どの文字列があり、どの文字列が欠落しているかを見つけるのが難しいということです。文字列を印刷してそのファイル名を見つけるのに役立ちますか?

ベストアンサー1

grepファイル名だけを教えてください。 GNUはgrepこれを行うことができます:

grep -HFf ../strings.txt *

これにより、次の出力が提供されます。

[filename]:[matched_line]

...ディレクトリ内のすべてのファイルのすべてのエントリ。次のように行番号を取得することもできます。

grep -HnFf ../strings.txt *

...これは...

[filename]:[line_number]:[matched_line]

おすすめ記事