Sie ändern die Struktur der Datei, wenn Sie dies nicht einfach tun können. Vielleicht kann so etwas helfen (aber Sie verlieren die Zeilenumbrüche:
awk '' binary_format.txt >out_file
Ich habe verwendet xxd
, um eine Hexadarstellung einer Datei zu erstellen (jede Datei wie .jpg, .docx, .zip usw.), wie folgt, ..
$ xxd -p original_file.zip > hexa_format.txt
und umzukehren
$ xxd -r -p hexa_format.txt > original_file.zip
Wenn jemand der Meinung ist, dass dies nicht der richtige Weg ist, korrigieren Sie mich bitte. Jedenfalls ist das nicht meine Frage. jetzt muss ich sie in binär statt hexa konvertieren. also geht der Befehl so, wenn ich richtig bin.
$ xxd -p -b original_file.zip > binary_format.txt
Meine Frage ist,
wie ich es aus der Binärdatei (binary_format.txt), die mit dem obigen Befehl erstellt wurde, auf die Originaldatei zurücksetzt. Die Manpage von xxd sagt, dass dies nicht möglich ist (in der letzten Zeile).
-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.
Wenn dies nicht möglich ist, gibt es keinen anderen Befehl, der es kann. wie das Pfeifen mehrerer Kommandos so.
Sie ändern die Struktur der Datei, wenn Sie dies nicht einfach tun können. Vielleicht kann so etwas helfen (aber Sie verlieren die Zeilenumbrüche:
awk '' binary_format.txt >out_file
Sie müssen Ihre eigene Binär-zu-Hex-Funktion schreiben ...
cut -f2-8 -d' ' infile | tr -d '\n' | tr ' ' '\n' | while read l; do echo -n $(bin_to_hex($l)) >> outfile (( ++n )) (( n % 60 == 0)) && echo "" >> outfile done
Dies sollte das gleiche Format ausgeben, das -p
dann durchlaufen werden kann -r
. Wenn Sie die Manpage für xxd
Sie lesen, lesen Sie, dass es keine -r
für gibt -b
. Es steht so auf dem Auszug, den Sie in Ihre Frage aufgenommen haben.