One of my common practices is to perform greps on all files of a certain type, e.g., find all the HTML files that have the word "rumpus" in them. To do it, I use
find /path/to -name "*.html" | xargs grep -l "rumpus"
find will return a file with a space in its name such as
my new file.html. When
xargs passed this to
grep, however, I get these errors:
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
I can see what's going on here: either the pipe or the
xargs is treating the spaces as delimiters between files. For the life of me, though, I can't figure out how to prevent this behavior. Can it be done with
xargs? Or do I have to use an entirely different command?