chester's blog

technology, travel, comics, books, math, web, software and random thoughts

Convertendo vários arquivos de um encoding para outro

29 Oct 2009

Devem haver maneiras melhores de converter todos os arquivos numa pasta de um encoding para outro (no caso, MacRoman para UTF-8), mas essa funcionou, e achei por bem anotar/compartilhar:

find . -type f | xargs -I {} sh -c 'iconv -f MACROMAN -t UTF-8 {} > {}.converted_from_iconv'; find . -type f | grep -v converted_from_iconv | xargs -I {} mv {}.converted_from_iconv {}

Funcionou no Mac OS X, e deve rodar bem em Linux/Cygwin também.

Comments




Mauro

Dá para economizar um processo na primeira parte assim:


find . -type f -exec iconv -f MACROMAN -t UTF-8 {} -o {}.converted_from_iconv \;

Mas eu faria algo assim:


for i in $( find . -type -f ); do iconv -f MACROMAN -t UTF-8 $i -o $i.new; mv $i.new $i; done


Chester

Heh, é bem mais esperto: faz as duas coisas num loop só, sem precisar da gambiarra pra achar os arquivos no segundo. Desnecessário dizer que o pouco que eu sei de shell script é altamente experimental. Obrigado pelo cleanup!


consult

Parabéns aos editores do blog!!! Realmente muito bom... cada post melhor do que o outro