hexdump -e '"% x"'
xxd -p | tr -d '\ n'
Wenn Sie dies jedes Mal müde werden, erstellen Sie einen Alias .
Wie konvertiere ich mühelos in / von einfachen maschinenlesbaren hexadezimalen Daten (ohne Auffüllung / Offsets / Zeichenansicht) mit xdd
oder hexdump
?
Ich bin müde, einige spezielle Formatzeichenfolgen zu graben (und finde heraus, dass plötzlich Zeilen nach N-Zeichen umbrochen werden oder Zeilen übersprungen werden) oder jedes Mal Perl-Einzeiler geschrieben wird.
Warum ist es nicht so einfach wie base64
/ base64 -d
?
hexdump -e '"% x"'
xxd -p | tr -d '\ n'
Wenn Sie dies jedes Mal müde werden, erstellen Sie einen Alias .
Einfache Konvertierung in / von einfachen maschinenlesbaren Hexadezimaldaten
In Kürze.
$ xxd -plain test.txt> test.hex $ xxd -plain -revert test.hex test2.txt $ diff test.txt test2.txt $
Erläuterung:
$ xxd -plain test.txt > test.hex
Dies schreibt eine Hex-Kodierung der Daten in test.txt in die neue Datei test.hex. Die Option -p
oder -plain
bewirkt, dass xxd ein "einfaches" Hex-Format ohne Leerzeichen zwischen den Ziffernpaaren (dh keine Leerzeichen zwischen Byte-Werten) verwendet. Dies wandelt "abc ABC" in "61626320414243" um. Ohne -p
würde er den Text in ein wortorientiertes 16-Bit-Hexdump-Format umwandeln, das zwar leichter lesbar, aber weniger kompakt und daher weniger als Übertragungsformat geeignet und etwas schwerer zu invertieren ist.
$ xxd -plain -revert text.hex test2.txt
Dies verwendet die Option -r
oder -revert
für den Rückwärtsbetrieb. Die -plain
Option wird erneut verwendet, um anzuzeigen, dass die Eingabe-Hex-Datei ein einfaches Format hat.
Ich mache den Ausgabedateiname anders als den Originaldateinamen, damit wir die Ergebnisse später mit der Originaldatei vergleichen können.
$ diff test.txt test2.txt $
Der Befehl diff gibt nichts aus. Dies bedeutet, dass zwischen dem ursprünglichen und dem wiederhergestellten Inhalt der Datei kein Unterschied besteht.
Ich bin es leid, einige spezielle Formatketten zu graben
Verwenden Sie Alias- oder Deklarationsfunktionen in Ihrem .profile, um Mnemonics zu erstellen, damit Sie sich nicht in Manpages erinnern oder nach ihnen suchen müssen.
oder einfach daran erinnern -plain
und -revert
.
Umschlossene Ausgabe
Ja, die Ausgabe enthält neue Zeilen. Das willst du vermeiden. Mit der Option -c
oder können Sie -cols
angeben, wie lange die Ausgabezeilen versuchen sollen, um Zeilenumbrüche 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
Der wc
Befehl wordcount gibt an, wie viele Zeilen, Wörter und Zeichen sich in einer Datei befinden.
So wurden 121 Zeilen (880 Wörter, 4603 Bytes) ASCII-Text als eine Zeile mit Hex-Ziffern codiert.
Hier ist die Version mit od
Utility (Teil des coreutils
Pakets):
od -An < input | tr -dc '[:alnum:]'