我有一个包含 base64 编码图像数据的文件:~/dog/1.jpg
我通过 SSH 将其放在那里,并对数据进行 Base 64 编码,以便可以安全地在终端中传输。假设 Base64 图像数据未损坏。
现在我已将图像数据传递到另一台服务器,我需要解码文件内容,然后用解码后的文件覆盖编码后的文件。
我无法使用 base64 命令,因为它在远程服务器上不可用。
我怎样才能base64解码文件内容,然后用解码的内容覆盖编码的文件内容,最好使用perl?
这就是我现在所拥有的...
# Decode image data
poo=$(cat ~/dog/1.jpg | perl -MMIME::Base64 -ne 'printf "%s\n",decode_base64($_)');
# Write decoded data to file
echo $poo >| ~/dog/1.jpg
这会覆盖文件,但无法正确解码图像。
答案1
perl -MMIME::Base64 -i -0777ne 'print decode_base64($_)' ~/dog/1.jpg
将避免使用任何中介(无论是变量还是临时文件)并将解码的文件存储回原始 jpeg 文件。