Estou unificando a codificação de um grande grupo de arquivos de texto, reunidos ao longo do tempo em computadores diferentes. Estou indo principalmente da ISO-8859-1 para a UTF-8. Isso converte muito bem um arquivo:
recode ISO-8859-1..UTF-8 file.txt
É claro que eu quero fazer o processamento em lote automatizado para todos os arquivos, e simplesmente executar o acima para cada arquivo tem o problema de que os arquivos já codificados em UTF-8 terão sua codificação interrompida. (Por exemplo, o caractere 'a' originalmente na norma ISO-8859-1 aparece como esta, visto como UTF-8, se a recodificação acima é feito duas vezes: � -> ä -> ä
)
Minha pergunta é: que tipo de script executaria a recodificação apenas se necessário , ou seja, apenas para arquivos que ainda não estavam na codificação de destino (UTF-8 no meu caso)?
Olhando para a página de manual de recodificação, não consegui descobrir como fazer algo assim. Então eu acho que isso se resume a como verificar facilmente a codificação de um arquivo, ou pelo menos se é UTF-8 ou não. Esta resposta implica que você pode reconhecer arquivos UTF-8 válidos com recodificação, mas como? Qualquer outra ferramenta também ficaria bem, desde que eu pudesse usar o resultado de forma condicional em um script bash ...