Decodificação Base64 e arquivo de substituição

Decodificação Base64 e arquivo de substituição

Eu tenho um arquivo que contém dados de imagem codificados em base64: ~/dog/1.jpg

Coloquei lá via SSH e codifiquei os dados em base 64 para que fosse seguro transferir no terminal. Suponha que os dados da imagem base64 não estejam corrompidos.

Agora que os dados da imagem foram passados ​​para o outro servidor, preciso decodificar o conteúdo do arquivo e, em seguida, substituir o arquivo codificado pelo arquivo decodificado.

E não posso usar o comando base64 porque não está disponível no servidor remoto.

Como posso decodificar o conteúdo do arquivo em base64 e, em seguida, substituir o conteúdo do arquivo codificado pelo conteúdo decodificado, de preferência usando perl?

Isso é o que eu tenho agora...

# 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

Isso substitui o arquivo, mas não decodifica a imagem corretamente.

Responder1

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

Evitará ter que usar qualquer intermediário (seja uma variável ou um arquivo temporário) e armazenará o arquivo decodificado de volta no arquivo jpeg original.

informação relacionada