Base64デコードしてファイルを上書きする

Base64デコードしてファイルを上書きする

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 ファイルに保存されます。

関連情報