eu tenho usado xxd
para criar uma representação hexa de um arquivo (qualquer arquivo como .jpg, .docx, .zip etc), assim, ..
$ xxd -p original_file.zip > hexa_format.txt
e reverter
$ xxd -r -p hexa_format.txt > original_file.zip
Se alguém achar que esse não é o jeito certo, por favor corrija-me. de qualquer forma esta não é a minha pergunta. Agora eu tenho que convertê-los em binário em vez de hexa. então o comando é assim, se estiver correto.
$ xxd -p -b original_file.zip > binary_format.txt
minha pergunta é ,
como eu reverter de volta para o arquivo original do arquivo binário (binary_format.txt) criado a partir do comando acima. o man page do xxd diz que não pode ser feito (na última linha).
-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.
se isso não puder ser feito, existe algum outro comando que possa fazê-lo. como canalizar vários comamnds assim.
linux
command-line
binary-files
xxd
arvindh
fonte
fonte
xxd
não produz arquivos binários. Produz representações textuais de arquivos. Por favor, leia a página do manual. O formato binário mencionado acima é apenas os bytes do arquivo escritos em 1 e 0.Respostas:
Você terá que escrever seu próprio binário para a função hexadecimal ...
Isso deve exibir o mesmo formato
-p
que pode então ser executado através-r
. Se você ler a página do manual paraxxd
você vai ler que não há-r
para-b
. Diz isso no trecho que você incluiu na sua pergunta.fonte
.sh
..?-p
: 60 valores hexadecimais por linha.$l' bash: command substitution: line 18:
bin_to_hex ($ l)) 'Você altera a estrutura do arquivo, não é fácil fazer isso. Talvez algo assim possa ajudar (mas você perderá personagens de nova linha:
fonte
awk: run time error: not enough arguments passed to printf("...%&'") FILENAME="bin_jpg.txt" FNR=59 NR=59.
Meu uso é mais ou menos como recuperar o arquivo original,awk: run time error: not enough arguments passed to printf("%s......") FILENAME="bin_jpg.txt" FNR=1 NR=1
.