Warum kommt der Zeilenumbruch vor dem Leerzeichen in der Ausgabe von Hexdump?

546
Ярослав Рахматуллин

Wenn Sie diese Zeichen mit Hexdump im "kanonischen" Format drucken, erhalten Sie die erwartete Ausgabe, während das Standardformat mich abwirft.

$ echo " " |hexdump # Reversed? 0000000 0a20 0000002  $ echo -n " " |hexdump # Ok, fair enough. 0000000 0020  $ echo " " |hexdump -C # Canonical 00000000 20 0a | .| 00000002 

Bei einer anderen Zeichenfolge wie "123" ist die Ausgabe noch verwirrender:

$ echo "123" |hexdump 0000000 3231 0a33 0000004 

Die Ausgabe scheint hier nicht "umgedreht" zu sein, sondern sie wird gemischt. Was ist hier (kurz) los?

2
Das sieht aus wie ein Werkzeug, mit dem die Git-Autoren gearbeitet haben. Es ist eine einfache Aufgabe und macht es schwierig ... jww vor 7 Jahren 0

1 Antwort auf die Frage

1
Nicole Hamilton

Das Standardformat ist 16-Bit- Little Endian- Zeichen ohne Vorzeichen.

Die Handbuchseite von hexdump erläutert auch das Standardformat:

 -x Two-byte hexadecimal display. Display the input offset in hexadecimal,  followed by eight space-separated, four-column, zero-filled, two-byte  quantities of input data, in hexadecimal, per line.  (...)  If no format strings are specified, the default display is equivalent to  specifying the -x option. 
Vielleicht nicht Teil einer kurzen Antwort, aber wissen Sie, warum _das _ das Standardformat ist? Ich meine zu fragen, wozu ist es geeignet? Ярослав Рахматуллин vor 11 Jahren 0
Es ist übrig geblieben, als Unix in den 70er Jahren auf 16-Bit-Minicomputern erfunden wurde. Nicole Hamilton vor 11 Jahren 0