Esta questão está intimamente relacionada a: Como inserir texto antes da primeira linha de um arquivo? . Eu deliberadamente fiz o título parecido com o daquela questão para destacar isso.
Exceto que o arquivo de destino é UTF-8 com BOM.
Então, eu quero adicionar uma primeira linha a um arquivo que tem bytes UTF-8 BOM em seu cabeçalho ( 0xef 0xbb 0xbf
caracteres). Pelo menos os arquivos UTF-8 com BOM que eu tenho aqui começam com isso.
Se eu simplesmente seguir em frente e seguir as soluções na questão relacionada,
sed "1i My First line is now this." file.txt
Eu obterei (no VSCode no meu caso) algo como
My First line is now this.
?The first line was this one
Second line and so on
Estando ?
na segunda linha o caractere UTF-8 para expressar algo não imprimível.
Outra consequência, como seria de se esperar, é que o arquivo não abre mais como UTF-8 com BOM e agora dependemos dos recursos do editor de texto para "adivinhar" sua codificação. Determinamos um padrão em nosso projeto para ter arquivos com BOM para garantir que tudo esteja na mesma codificação.
Como preservo o cabeçalho da lista de materiais no arquivo ao adicionar o texto?