
我有一個包含 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 檔案。