1

名前に別の文字列が含まれ、過去 7 日間に作成されたファイルで文字列を検索したいのですが、

私は試した:

find . -type f -name '*name_string*' -mtime -7 | grep -ir '*mytext*'

しかし、うまくいきませんでした。

助けてください

4

2 に答える 2

2

あなたは本当に近づいていましたがxargsfind.

find . -type f -name '*name_string*' -mtime -7 | xargs grep -i 'mytext'

を使用すると、文字列を検索するxargsファイルのセットとしてファイルのリストを渡します。grepmytext

mytextところで、代わりに使用できます*mytext*

複数のパターンを検索する場合は、次を含むファイル名のリストでpattern1とを言います。pattern2name_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

これは、スペースを含むファイル名でも機能するはずです。

于 2013-03-16T07:21:30.637 に答える
1

ファイル名を適切に処理するために、xargs やその他の非標準の拡張子は必要ありません。

find . -type f -name '*name_string*' -mtime -7 -exec grep -i 'mytext' {} \;
于 2013-03-16T11:21:51.037 に答える