如何使 Base64 在换行符后打印编码输出而不对换行符进行编码?

如何使 Base64 在换行符后打印编码输出而不对换行符进行编码?

我喜欢base64通过调用命令粘贴输入并按Ctrl + D两次来从 stdin 进行编码,以避免尾随换行符(如果我不希望换行符成为输入的一部分)。它会避免echo在 shell 历史记录中留下任何数据。

然而,输出是直接在输入之后写入的,并且很难检索该值:

$ base64
Input without trailing newlineSW5wdXQgd2l0aG91dCB0cmFpbGluZyBuZXdsaW5l

有什么办法可以让我看起来像

$ base64
Input without trailing newline
SW5wdXQgd2l0aG91dCB0cmFpbGluZyBuZXdsaW5l

编码输出中不包含任何换行符?

我使用的是 Ubuntu 23.10。

答案1

alias这是一个应该可以完成您想要的操作的小外壳:

alias b64='x="$(base64)"; echo; echo "$x"'

只需运行b64并执行您在 OP 中建议的操作即可。

相关内容