
文字列を含むファイルを探しています。コマンド:
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/