O comando perl
pode operar facilmente em um conjunto de arquivos. Não há necessidade de grep
dos arquivos para procurá-los por uma determinada string, em seguida, passar esses nomes de arquivo através de um pipe para xargs
e então para perl
. Isso definitivamente vai quebrar mesmo no caso simples de que qualquer um dos arquivos contenha um espaço em seu nome.
Por que não fazer o seguinte, por exemplo, para remover caracteres inválidos?
perl -pi -e 's/[—Ç…]//g' *.txt
Ou para remover caracteres não ASCII:
perl -pi -e 's/[^[:ascii:]]//g' *.txt
Ou para substituir um determinado caractere por outro:
perl -pi -e 's/ú/u/g' *.txt