używałem xxd
do utworzenia reprezentacji heksa pliku (dowolnego pliku, takiego jak .jpg, .docx, .zip itp.), jak ten ...
$ xxd -p original_file.zip > hexa_format.txt
i odwrócić
$ xxd -r -p hexa_format.txt > original_file.zip
jeśli ktoś uważa, że to nie jest właściwy sposób, popraw mnie. w każdym razie to nie moje pytanie. teraz muszę przekonwertować je na binarne zamiast hexa. więc polecenie działa tak, jeśli mam rację.
$ xxd -p -b original_file.zip > binary_format.txt
moje pytanie brzmi :
jak przywrócić go z powrotem do oryginalnego pliku z pliku binarnego (binary_format.txt) utworzonego z powyższego polecenia. strona podręcznika xxd mówi, że nie można tego zrobić (w ostatnim wierszu).
-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.
jeśli nie można tego zrobić, czy istnieje inne polecenie, które może to zrobić. na przykład przesyłanie wielu wiadomości.
linux
command-line
binary-files
xxd
arvindh
źródło
źródło
xxd
nie wyświetla plików binarnych. Generuje tekstowe reprezentacje plików. Proszę przeczytać stronę podręcznika. Wspomniany powyżej format binarny to tylko bajty pliku zapisane w jedynkach i zerach.Odpowiedzi:
Będziesz musiał napisać własną funkcję binarną na szesnastkową ...
Powinno to wygenerować ten sam format,
-p
który można następnie uruchomić-r
. Jeśli przeczytasz stronę podręcznikaxxd
, to przeczytasz, że nie ma-r
dla niej-b
. Jest tak na fragmencie, który umieściłeś w swoim pytaniu.źródło
.sh
...?-p
: 60 wartości szesnastkowych na linię.$l' bash: command substitution: line 18:
bin_to_hex ($ l)) 'Zmieniasz strukturę pliku, jeśli nie możesz tego łatwo zrobić. Może coś takiego może pomóc (ale stracisz znaki nowej linii:
źródło
awk: run time error: not enough arguments passed to printf("...%&'") FILENAME="bin_jpg.txt" FNR=59 NR=59.
Moje użycie przypomina mniej więcej odzyskiwanie oryginalnego pliku,awk: run time error: not enough arguments passed to printf("%s......") FILENAME="bin_jpg.txt" FNR=1 NR=1
.