Acho que você deve encontrar um utilitário base64
diferente, como a versão GNU, que tolera caracteres de nova linha.
Se isso não acontecer, presumindo-se que a entrada tenha exatamente uma linha de comprimento (já que, do contrário, ela teria uma nova linha ilegal), você poderia fazer o seguinte:
echo -n "$(head -n1)" | base64 -d
ou se você não gosta de echo -n
(embora pareça funcionar no seu sistema, isso não é garantido):
printf %s "$(head -n1)" | base64 -d
Existe alguma ambiguidade sobre se as novas linhas são legais na codificação base64; o RFC relevante diz que eles são legais somente se o aplicativo que usa a codificação base64 for documentado como permitido. Isso não ajuda muito para um codec de base64 de propósito geral.
Mas, AFAIK, praticamente todos os aplicativos que usam base64 permitem explicitamente novas linhas (e alguns exigem isso definindo um comprimento máximo de linha), então parece estranho para mim que o utilitário base64
não tenha algum mecanismo para permitir .