base64
grava várias linhas para cadeias de caracteres moderadamente longas; portanto, você deve deduzir o número correto de novas linhas a partir do tamanho do arquivo. Em alguns sistemas, o utilitário pode escrever um arquivo de texto do DOS (não com base64
do GNU coreutils, mas com a implementação do fourmilab comum em sistemas BSD), caso em que você terá que deduzir 2 bytes por linha para obter o comprimento da string codificada.
Respondendo a uma pergunta nos comentários: "Como obtenho a string raw base64 sem nenhum ônus novo ou outro lixo? Apenas a string base64?"
base64
insere quebras de linha após cada 76º caractere, já que 76 caracteres é o comprimento máximo de uma linha de texto codificada em MIME (e a base 64 é mais comumente usada para criar a base 64
Content-Transfer-Encoding para e-mails).
Se você deseja remover essas quebras de linha:
base64 filename | tr -d '\n\r' >outfilename
Com base64
do GNU coreutils, você pode usar
base64 -w0 filename >outfilename