文字列を含むファイルのフィルタリングされたリスト

文字列を含むファイルのフィルタリングされたリスト

文字列を含むファイルを探しています。コマンド:

grep -rwl '/path/' -e "string"

結果を、異なる文字列を含むパスに限定したいです。次のようにします。

grep -rwl '/path/' -e "string" | grep 'path_string'

可能であれば、まず「path_string」を含むパスのみを調べて実行を最適化したいと思います。どうすればこれを実現できますか?

答え1

例えば次のようfindに使えます-path

find /path -path '*path_string*' -type f -exec grep -qw 'string' {} \; -print

これは、 1 つのシェル パターン/pathに一致するファイル名を検索し、それらのファイルに対してのみ実行し、成功した場合はその名前を出力します。*path_string*grep


1: パターンマッチはファイル名全体に適用されます。/path/

関連情報