Como posso converter vários arquivos em codificação UTF-8 usando as ferramentas de linha de comando * nix? [duplicado]

45

Eu tenho um monte de arquivos de texto que eu gostaria de converter de qualquer charset dado para a codificação UTF-8.

Existe alguma ferramenta de linha de comando ou Perl (ou idioma de sua escolha) em um forro que eu possa usar para fazer isso em massa?

    
por jason 01.08.2009 / 02:29

1 resposta

55

O iconv converte entre muitas codificações de caracteres. Então, adicionando um pouco de bash magic e podemos escrever

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

Isso executará iconv -f ascii -t utf-8 para cada arquivo que termina em .txt , enviando o arquivo recodificado para um arquivo com o mesmo nome, mas terminando em .utf8.txt em vez de .txt .

Não é como se isso realmente fizesse alguma coisa com seus arquivos (porque ASCII é um subconjunto de UTF-8), mas para responder à sua pergunta sobre como converter entre codificações.

    
por 01.08.2009 / 03:25