Base64-Dekodierung und Überschreiben der Datei

Base64-Dekodierung und Überschreiben der Datei

Ich habe eine Datei, die Base64-codierte Bilddaten enthält: ~/dog/1.jpg

Ich habe es per SSH dort abgelegt und die Daten Base64-kodiert, sodass die Übertragung im Terminal sicher ist. Gehen Sie davon aus, dass die Base64-Bilddaten nicht beschädigt sind.

Nachdem ich die Bilddaten an den anderen Server übergeben habe, muss ich den Dateiinhalt dekodieren und dann die kodierte Datei mit der dekodierten Datei überschreiben.

Und ich kann den Base64-Befehl nicht verwenden, da er auf dem Remote-Server nicht verfügbar ist.

Wie kann ich Dateiinhalte Base64-dekodieren und dann die kodierten Dateiinhalte mit den dekodierten Inhalten überschreiben, vorzugsweise mit Perl?

Das ist, was ich jetzt habe ...

# 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

Dadurch wird die Datei überschrieben, das Bild wird jedoch nicht richtig dekodiert.

Antwort1

perl -MMIME::Base64 -i -0777ne 'print decode_base64($_)' ~/dog/1.jpg

Vermeidet die Verwendung eines Vermittlers (sei es eine Variable oder eine temporäre Datei) und speichert die dekodierte Datei wieder in der ursprünglichen JPEG-Datei.

verwandte Informationen