Mengapa newline muncul sebelum ruang dalam output hexdump?

2

Menggunakan hexdump , mencetak karakter-karakter ini dalam format "kanonik" memberikan output yang saya harapkan, sementara format default membuat saya kecewa.

$ echo " " |hexdump                  # Reversed?
0000000 0a20
0000002

$ echo -n " " |hexdump               # Ok, fair enough.
0000000 0020

$ echo  " " |hexdump -C              # Canonical
00000000  20 0a                      | .|
00000002

Dengan string yang berbeda, seperti "123", hasilnya bahkan lebih membingungkan:

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

Output di sini tampaknya tidak "terbalik", melainkan diacak. Apa (singkat) yang terjadi di sini?

Ярослав Рахматуллин
sumber
Ini terlihat seperti alat yang penulis Git kerjakan. Dibutuhkan tugas yang sederhana, dan membuatnya sulit ...
jww

Jawaban:

1

Format default adalah 16-bit little-endian int unsigned.

Halaman manual hexdump juga menjelaskan format default:

 -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.
Nicole Hamilton
sumber
Mungkin bukan bagian dari jawaban singkat, tetapi apakah Anda tahu mengapa itu adalah format default? Maksud saya bertanya, untuk apa nyaman itu?
Ярослав Рахматуллин
Itu tersisa sejak Unix ditemukan pada komputer mini 16-bit di tahun 70-an.
Nicole Hamilton