hexdump -ve '1/1 "%02x"'
xxd -p | tr -d '\n'
Wenn Sie es leid sind, dies zu schreiben Erstellen Sie jedes Mal einen Alias.
So konvertieren Sie ganz einfach in/aus maschinenlesbaren Hexadezimaldaten
In Kürze.
$ xxd -plain test.txt > test.hex $ xxd -plain -revert test.hex test2.txt $ diff test.txt test2.txt $
Erklärung:
$ xxd -plain test.txt > test.hex
Dies schreibt eine Hex-Kodierung der Daten in test.txt in die neue Datei test.hex.The -p
oder -plain
Option bewirkt, dass xxd ein "einfaches" Hex-Format ohne Leerzeichen zwischen Paaren von Hex-Ziffern verwendet (d. h. keine Leerzeichen zwischen Byte-Werten). Dadurch wird „abc ABC“ in „61626320414243“ umgewandelt. Ohne -p
es würde den Text in ein wortorientiertes traditionelles 16-Bit-Hexdump-Format konvertieren, das wohl einfacher zu lesen, aber weniger kompakt und daher als Übertragungsformat weniger geeignet und etwas schwieriger umzukehren ist.
$ xxd -plain -revert text.hex test2.txt
Dies verwendet den -r
oder -revert
Option für umgekehrten Betrieb. Die -plain
Die Option wird erneut verwendet, um anzuzeigen, dass die Eingabe-Hex-Datei im einfachen Format vorliegt.
Ich ändere den Ausgabedateinamen vom Originaldateinamen, damit wir später die Ergebnisse mit der Originaldatei vergleichen können.
$ diff test.txt test2.txt
$
Der diff-Befehl gibt nichts aus - das bedeutet, dass es keinen Unterschied zwischen dem ursprünglichen und dem rekonstituierten Dateiinhalt gibt.
Ich bin es leid, nach einigen speziellen Formatzeichenketten zu graben
Verwenden Sie Alias- oder Deklarationsfunktionen in Ihrer .profile-Datei, um Mnemoniken zu erstellen, damit Sie sich nicht erinnern oder in Manpages herumwühlen müssen.
oder merken Sie sich einfach -plain
und -revert
.
Umbrochene Ausgabe
Ja, die Ausgabe enthält Zeilenumbrüche. Das möchten Sie vermeiden. Sie können den -c
verwenden oder -cols
Option, um anzugeben, wie lang die Ausgabezeilen sein sollen, um zu versuchen, einen Zeilenumbruch der Ausgabe zu vermeiden. -c 0
gibt die Standardlänge an und die Manpage schlägt vor, dass 256 das Limit ist, aber es scheint darüber hinaus zu funktionieren.
$ xxd -plain -cols 9999 test.txt > test.hex
$ wc test.txt test.hex
121 880 4603 test.txt
1 1 9207 test.hex
Die wc
Der Befehl wordcount sagt uns, wie viele Zeilen, Wörter und Zeichen in jeder Datei enthalten sind.
So wurden 121 Zeilen (880 Wörter, 4603 Bytes) ASCII-Text als 1 Zeile mit Hexadezimalziffern kodiert.
Hier ist die Version mit od
Dienstprogramm (Teil von coreutils
Paket):
od -An < input | tr -dc '[:alnum:]'