私の一般的なプラクティスの1つは、特定のタイプのすべてのファイルに対してgrepsを実行することです。たとえば、「rumpus」という単語を含むすべてのHTMLファイルを見つけます。それをするために、私は
find /path/to -name "*.html" | xargs grep -l "rumpus"
時々、find
名前にスペースなどのファイルを返しますmy new file.html
。ときにxargs
これをするために渡されたgrep
、しかし、私はこれらのエラーを取得します:
grep: /path/to/bad/file/my: No such file or directory
grep: new: No such file or directory
grep: file.html: No such file or directory
私はここで何が起こっているのかを見ることができます:パイプまたはパイプxargs
はスペースをファイル間の区切り文字として扱っています。しかし、私の人生では、この動作を防ぐ方法がわかりません。find
+ で実行できますxargs
か?または、まったく異なるコマンドを使用する必要がありますか?