Una delle mie pratiche comuni è eseguire greps su tutti i file di un certo tipo, ad esempio, trovare tutti i file HTML che contengono la parola "rumpus". Per farlo, io uso
find /path/to -name "*.html" | xargs grep -l "rumpus"
Occasionalmente, find
restituirà un file con uno spazio nel suo nome come my new file.html
. Quando viene xargs
passato a grep
, tuttavia, ottengo questi errori:
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
Vedo cosa sta succedendo qui: o la pipe o the xargs
sta trattando gli spazi come delimitatori tra i file. Per la mia vita, però, non riesco a capire come prevenire questo comportamento. Può essere fatto con find
+ xargs
? O devo usare un comando completamente diverso?