从标准输入解码多个base64字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从标准输入解码多个base64字符串相关的知识,希望对你有一定的参考价值。
我有一个文件,其中包含由新行字符分割的多个base64编码字符串:
Y2F0Cg==
ZG9nCg==
ZmlzaAo=
当我执行:cat b64s.txt | base64 -D
时,我希望看到:
cat
dog
fish
但我只看到:
cat
从标准读取的每一行执行base64 -D
的简单方法是什么?
答案
while read line; do base64 -D <<< "$line"; done < b64s.txt
对于它的价值,在我的带有GNU coreutils 8.28的Linux系统上,解码标志是-d
,它会自动解码一个包含多个字符串的文件:
$ base64 -d b64s.txt
cat
dog
fish
另一答案
macOS中的库存/usr/bin/base64
只会解码输入文件中的第一个字符串。但是base64解码器变化很大,甚至在SO中对这个话题进行了相当多的讨论。
默认情况下,Python安装在macOS中,可能存在于/usr/bin/python
的Python 2.7解释器可能会按照您的需要运行。
$ uname -a
Darwin ghoti.local 15.6.0 Darwin Kernel Version 15.6.0: Tue Jan 30 11:45:51 PST 2018; root:xnu-3248.73.8~1/RELEASE_X86_64 x86_64
$ cat i
Y2F0Cg==
ZG9nCg==
ZmlzaAo=
$ python -m base64 -d < i
cat
dog
fish
以上是关于从标准输入解码多个base64字符串的主要内容,如果未能解决你的问题,请参考以下文章