find
não se preocupa com caracteres especiais em nomes de arquivos, mas o programa que está analisando a saída de find
pode. Se você estiver usando xargs
, use a opção -print0
para find
e a opção -0
para xargs
. Isso diz a find
e xargs
para usar caracteres nulos (que não podem aparecer em nomes de arquivos) como um separador entre nomes de arquivos e xargs
para não fazer nenhuma outra análise que manivesse nomes de arquivos contendo espaços.
find /media/media1/HDTV -name '*.nfo' -type f -print0 |
xargs -0 sed -i 's/pattern/replacement/'
Outra maneira de invocar um comando em muitos arquivos é usar apenas find
.
find /media/media1/HDTV -name '*.nfo' -type f -exec sed -i 's/pattern/replacement/' {} +