xmllint fez o trabalho!
$ cat foo.xml
<A>B</A>
$ xmllint foo.xml --encode UTF-8
<?xml version="1.0" encoding="UTF-8"?>
<A>B</A>
$
Eu tenho um programa que espera que os arquivos XML de entrada tenham uma declaração XML no formato <?xml version="1.0" encoding="UTF-8"?>
(todos os nossos arquivos são UTF-8, realmente tem que ser essa cadeia).
Alguns dos meus arquivos de entrada estão sem a declaração XML.
Qual é a melhor maneira de testar um arquivo para ver se ele começa com essa declaração XML e prefixá-lo se estiver faltando? Existe um comando para isso?