Как декодировать строку изображения с помощью base64 в командной строке?

Скажите, что у меня есть изображение image1.jpg
Я могу закодировать его использование base64 инструмент:

myImgStr=$(base64 image1.jpg)

Я пытался декодировать его с помощью следующей команды:

base64 -i -d $myImgStr > image2.jpg

или

echo -n $myImgStr | base64 -d -i > image2.jpg

Но в обоих случаях я получаю следующую ошибку:

base64: extra operand ‘/9j/4AAQSkZJRgABAQAAAQABAAD/7QCEUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAGgcAmcAFHNH’ Try 'base64 --help' for more information.
Любая справка ценится.

6
задан 21 April 2017 в 13:50

2 ответа

Утилита base64 читает свой вход или из файла, имя которого предоставляется как аргумент, или от стандартного входа. Это никогда не читает свой вход из параметра командной строки. В Вашем случае, для декодирования строки сохранил в переменной, необходимо предоставить строку на стандартном входе base64.

при использовании Bash можно использовать здесь-строку:

base64 -d <<< "$myImgStr" > image2.jpg

, Если Ваша оболочка не принимает здесь-строки, можно всегда использовать:

echo "$myImgStr" | base64 -d > image2.jpg

(Отмечают doublequotes приблизительно "$myImgStr". Вы всегда должны doublequote переменные расширения, если у Вас нет серьезного основания не к.)

15
ответ дан 23 November 2019 в 07:20

Как экспортировать Кавычку Salesforce файл PDF и читать, преобразовывают его из Base64 назад к PDF с помощью командной строки Linux

  1. Используйте Dataloader и экспортируйте объект QuoteDocument со всеми полями и данными

dataloader1

dataloader2

dataloader3

  2. Используйте текстовый редактор, TextPad для открытия файла CSV. Не используйте Блокнот, потому что он не может обработать большого размера данные и усекает его. 3. TextPad может обработать большие данные и уважает любые символы новых строк, и т.д. при открытии файла и также когда Вы скопировать/вставить данные. 4. Перейдите к определенной строке в данных и выберите и скопируйте полевую строку ячейки, которая содержит закодированные данные PDF Base64. Удостоверьтесь, что Вы выбираете все это путь в конец – но не включаете последующие поля после него.

textpad1

  1. Не включайте последующие поля после него.
  2. Выберите строку до, но не включайте кавычку "символ.

textpad2

  1. Скопировать/вставить строка в новое окно TextPad.
  2. Сохраните новый TextPad в файл, например, document1.txt
  3. Скопируйте файл docuemnt1.txt в свой компьютер Linux (Вы могли использовать Dropbox для этого).
  4. Откройте окно терминала командной строки Linux
  5. Работайте base64 декодируют команду (base64, часть coreutils пакета), $ base64 - декодируют ~/Dropbox/linux_stuff/Document1.txt> ~/Dropbox/linux_stuff/decoded1.pdf
  6. Эта команда будет читать в файле Document1.txt и производить декодируемый файл PDF к decoded1.pdf.
  7. Можно теперь открыть файл decoded1.pdf как файл PDF.
  8. Можно переименовать файл decoded1.pdf к тому, что Вы хотите, т.е. назад к исходному имени файла, которое было присоединено в исходной записи объекта Кавычки Salesforce.

linux_command_line

0
ответ дан 23 November 2019 в 07:20

Другие вопросы по тегам:

Похожие вопросы: