Eu faria algumas pequenas modificações no seu script. Primeiro, não use ls
no seu loop for
, use *.csv
porque o glob manipulará caracteres não imprimíveis e espaços nos nomes dos arquivos. Em vez de usar o redirecionamento inplace do sed para $file.bak
. Se strings
estiver disponível em seu sistema, substitua sed
por strings
. E lembre-se sempre de citar variáveis.
for file in *.csv
do sed 's/^M//' "$file" > "${file}.bak"
#strings "$file" > "${file}.bak"
iconv -f -iso-8859-1 -t utf8 "${file}.bak" > "$file"
rm "${file}.bak"
done