हेक्सडंप के आउटपुट में स्पेस से पहले न्यूलाइन क्यों आती है?


2

का उपयोग करते हुए hexdump , इन अक्षरों को "कैनोनिकल" प्रारूप में प्रिंट करने से वह आउटपुट मिलता है जिसकी मुझे उम्मीद है, जबकि डिफ़ॉल्ट प्रारूप मुझे बंद कर देता है।

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

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

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

एक अलग स्ट्रिंग के साथ, जैसे "123", आउटपुट और भी अधिक भ्रामक है:

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

यहां आउटपुट "उलट" नहीं लगता है, बल्कि इसे फेरबदल किया जाता है। क्या (संक्षेप में) यहाँ चल रहा है?


यह एक उपकरण की तरह दिखता है जिस पर गिट लेखकों ने काम किया। यह एक सरल कार्य लेता है, और इसे कठिन बनाता है ...
jww

जवाबों:


1

डिफ़ॉल्ट प्रारूप 16-बिट है छोटा एंडियन अहस्ताक्षरित ints।

हेक्सडंप का मैनुअल पेज डिफॉल्ट प्रारूप को भी बताता है:

 -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.

शायद एक संक्षिप्त जवाब का हिस्सा नहीं है, लेकिन क्या आप जानते हैं कि क्यों उस डिफ़ॉल्ट प्रारूप क्या है? मेरा मतलब यह पूछना है कि यह किसके लिए सुविधाजनक है?
Ярослав Рахматуллин

यह तब से बचा हुआ है जब 70 के दशक में यूनिक्स का 16-बिट मिनीकंप्यूटर पर आविष्कार किया गया था।
Nicole Hamilton
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.