
Linuxシェルでは、私がディレクトリにあると仮定し、すべてのサブフォルダ内の名前に文字列があり、内部に文字列を含むすべてのファイルを再帰的/dir
に検索したいと思います。ファイル名の先頭、中間、または末尾にある可能性があります。どうすればいいですか?name_string
content_string
name_string
私はgrepを試しました:
grep -r content_string /dir/*name_string*
しかし、これまで私はそれほど幸運ではありませんでした。
ありがとうございます!
答え1
迅速な修正のために他の方法ほど効果的ではない場合でも
find /dir -type f -name '*name_string*' -print0 | xargs -0 grep -l content_string
答え2
次のOR構文が使用できると思います。
grep -nriE '.*name_string.*|content_string' /dir
または私が一般的にすることをしなさい。つまり、最初の出力をgrep
別の出力にパイプすることですgrep
。
grep -nriE '.*name_string.*' /dir | grep -nri 'content_string'