я использовал xxd
создать гекса-представление файла (любой файл, например .jpg, .docx, .zip и т. д.), например, ..
$ xxd -p original_file.zip > hexa_format.txt
и повернуть вспять
$ xxd -r -p hexa_format.txt > original_file.zip
если кто-то считает, что это не правильно, поправьте меня. во всяком случае, это не мой вопрос. Теперь я должен преобразовать их в двоичный файл вместо гекса. так что команда идет так, если я прав.
$ xxd -p -b original_file.zip > binary_format.txt
мой вопрос ,
Как мне вернуть его обратно в исходный файл из двоичного файла (двоичный формат.txt), созданного из приведенной выше команды. Страница man xxd говорит, что это невозможно сделать (в последней строке).
-b | -bits
Switch to bits (binary digits) dump, rather than hexdump. This
option writes octets as eight digits "1"s and "0"s instead of a
normal hexadecimal dump. Each line is preceded by a line number
in hexadecimal and followed by an ascii (or ebcdic) representa‐
tion. The command line switches -r, -p, -i do not work with this
mode.
Если это не может быть сделано, есть ли другая команда, которая может это сделать. как обвязка нескольких комадов так.
linux
command-line
binary-files
xxd
arvindh
источник
источник
xxd
не выводит двоичные файлы. Он выводит текстовые представления файлов. Пожалуйста, прочитайте страницу руководства. Упомянутый выше двоичный формат - это просто байты файла, записанные в 1 и 0.Ответы:
Вам нужно написать свою собственную двоичную функцию в шестнадцатеричную ...
Это должно вывести тот же формат, что и
-p
который затем можно прогнать-r
, Если вы читаете справочную страницу дляxxd
вы прочтете что нет-r
за-b
, Так говорится в выдержке, которую вы включили в свой вопрос.источник
.sh
, ..?-p
: 60 шестнадцатеричных значений на строку.$l' bash: command substitution: line 18:
bin_to_hex ($ л))»Вы изменяете структуру файла, если вам нелегко сделать это. Может быть, что-то вроде этого может помочь (но вы потеряете символы новой строки:
источник
awk: run time error: not enough arguments passed to printf("...%&'") FILENAME="bin_jpg.txt" FNR=59 NR=59.
Мое использование более или менее похоже на восстановление исходного файла,awk: run time error: not enough arguments passed to printf("%s......") FILENAME="bin_jpg.txt" FNR=1 NR=1
,