
Tengo un archivo que contiene datos de imagen codificados en base64: ~/dog/1.jpg
Lo puse allí a través de SSH y codifiqué los datos en base 64 para que fuera seguro transferirlos en la terminal. Suponga que los datos de la imagen base64 no están dañados.
Ahora que he pasado los datos de la imagen al otro servidor, necesito decodificar el contenido del archivo y luego sobrescribir el archivo codificado con el archivo decodificado.
Y no puedo usar el comando base64 porque no está disponible en el servidor remoto.
¿Cómo puedo decodificar el contenido del archivo en base64 y luego sobrescribir el contenido del archivo codificado con el contenido decodificado, preferiblemente usando Perl?
Esto es lo que tengo ahora...
# 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
Esto sobrescribe el archivo pero no decodifica correctamente la imagen.
Respuesta1
perl -MMIME::Base64 -i -0777ne 'print decode_base64($_)' ~/dog/1.jpg
Evitará tener que utilizar cualquier intermediario (ya sea una variable o un archivo temporal) y almacenará el archivo decodificado nuevamente en el archivo jpeg original.