Interpretieren eines Oktaldumps ohne Optionen

Interpretieren eines Oktaldumps ohne Optionen
$ echo "hello" | od
0000000 062550 066154 005157
0000006

Ich weiß, dass die erste Spalte den Byte-Offset darstellt. Aber ich sehe nicht, wie die anderen Zahlen gebildet werden. Laut mandem obigen sollte es „Oktalbytes“ sein. Die Option -bsoll jedoch auch „Oktalbytes auswählen“ und gibt etwas anderes aus:

$echo "hello" | od -b
0000000 150 145 154 154 157 012
0000006

BEARBEITEN: Dies ist übrigens das, was ich erwarten würde, d. h. die ASCII-Werte aller Zeichen in „hello\n“ als das, was ich als „Oktalbytes“ erwarten würde.

Antwort1

odzeigt standardmäßig keine Bytes an, sondern Wörter in Oktal. Das ist vielleicht nicht ganz intuitiv, aber vergessen Sie nicht, odes ist einsehralter Befehl :-) Ich verwende ein etwas einfacheres Beispiel als Sie:

$ echo -en '\01\02' | od
0000000 001001
0000002

Da Intel eineLittle-Endian-Übersetzungdie Architektur, die Bytes \01\02werden 00000010 00000001binär interpretiert.

Da Oktalziffern jeweils 3 Bits darstellen, können wir diese Zahl folgendermaßen gruppieren:

(0)(000)(001)(000)(000)(001)

Die Oktaldarstellung dieser 2 Bytes lautet also:

001001

Für den alltäglichen Gebrauch ist dies ziemlich nutzlos; vielleicht war es früher praktisch, um Speicherauszüge manuell zu debuggen :-)

Ihr hello\nBeispiel ist:

h = 01101000
e = 01100101
l = 01101100
l = 01101100
o = 01101111
\n= 00001010

Jetzt ist es etwas komplizierter, da Oktalziffern 3 Bits darstellen, Bytes jedoch 8 Bits sind. Daher wird eine Auffüllung hinzugefügt :-( Das Ergebnis ist symbolisch:

PehPllP\no

Denken Sie daran, dass jeder Satz von 2 Bytes aufgrund der Bytereihenfolge vertauscht wird.Pist eine Auffüllung von 2 Bits. Das Ergebnis in Oktal ist (mit einem Schrägstrich als Trennzeichen):

00/01100101/01101000/00/01101100/01101100/00/00001010/01101111

Jetzt in Oktalgruppen zu je 3 Bits:

000 110 010 101 101 000 000 110 110 001 101 100 000 000 101 001 101 111

In Oktalziffern übersetzt:

062550066154005157

Dies entspricht Ihrem Ergebnis.

Zusammenfassend haben Sie wahrscheinlich gelernt, dass odes schlimmer als nutzlos ist, keine Optionen zu haben :-)

verwandte Informationen