Ich denke, Sie sollten ein anderes base64
Dienstprogramm finden, beispielsweise die GNU-Version, die Zeilenumbrüche toleriert.
Wenn dies nicht der Fall ist, vorausgesetzt, dass die Eingabe genau eine Zeile lang ist (da andernfalls ein ungültiger Zeilenumbruch vorhanden wäre), könnten Sie Folgendes tun:
echo -n "$(head -n1)" | base64 -d
oder wenn Sie nicht mögen echo -n
(obwohl es auf Ihrem System zu funktionieren scheint, ist das nicht garantiert):
printf %s "$(head -n1)" | base64 -d
Es gibt einige Unklarheiten darüber, ob Zeilenumbrüche bei der base64-Codierung zulässig sind. Das relevante RFC gibt an, dass sie nur dann legal sind, wenn die Anwendung, die die base64-Kodierung verwendet, als zulässig dokumentiert ist. Dies ist keine große Hilfe für einen allgemeinen Base64-Codec.
AFAIK, praktisch alle Anwendungen, die base64 verwenden, erlauben explizit Zeilenumbrüche (und einige erfordern sie, indem sie eine maximale Zeilenlänge festlegen), daher erscheint es mir merkwürdig, dass das base64
Dienstprogramm keinen Mechanismus hat, der sie zulässt.