findとgrepを1行に使用できますか?

findとgrepを1行に使用できますか?

イベントベースのディレクトリ構造があります。

これらのイベントには、検索する必要があるパターンが含まれているか含まれていないファイルタイプがあります。肯定的な結果を別のファイルに保存したいと思います。

私の最初のアプローチは次のとおりです。

find . /EVENT*/'filename' | grep 'searchtext' head -2 > error_file

しかし、これはうまくいかないようです。この方法では合わせることができないというのにfindどうgrepすればいいですか?

ベストアンサー1

これは一般的なパターンです:

find /directory/containing/files -type f -exec grep -H 'pattern_to_search' {} +

ここでは、find必要なファイルを含むディレクトリ内のすべてのファイルが最初に検索されます。この場合、コマンドは*.txt次のようになります。.txt

find /directory/containing/files -type f -name "*.txt" -exec grep -H 'pattern_to_search' {} +

-exec grep -H 'pattern_to_search' {} +必要なファイルを見つけたら-H(パターンが見つかったファイル名を印刷します)を使用して、このファイルから必要なパターンを検索します。ここでは{}検索したいファイルが含まれていると考えることができます+-exec-execgrepgrep -H 'pattern_to_search' file_1.txt file_2.txt file_3.txt

おすすめ記事