名前に別の文字列が含まれ、過去 7 日間に作成されたファイルで文字列を検索したいのですが、
私は試した:
find . -type f -name '*name_string*' -mtime -7 | grep -ir '*mytext*'
しかし、うまくいきませんでした。
助けてください
あなたは本当に近づいていましたがxargs
、find
.
find . -type f -name '*name_string*' -mtime -7 | xargs grep -i 'mytext'
を使用すると、文字列を検索するxargs
ファイルのセットとしてファイルのリストを渡します。grep
mytext
mytext
ところで、代わりに使用できます*mytext*
複数のパターンを検索する場合は、次を含むファイル名のリストでpattern1
とを言います。pattern2
name_string
find . -type f -name '*name_string*' -mtime -7 -print0 | while read -d $'\0' f; do
grep -qi pattern1 "$f" && grep -li pattern2 "$f"
done
これは、スペースを含むファイル名でも機能するはずです。
ファイル名を適切に処理するために、xargs やその他の非標準の拡張子は必要ありません。
find . -type f -name '*name_string*' -mtime -7 -exec grep -i 'mytext' {} \;