Por que a nova linha vem antes do espaço na saída do hexdump?

2

Usando o hexdump , a impressão desses caracteres no formato "canônico" fornece a saída esperada, enquanto o formato padrão me joga fora.

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

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

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

Com uma string diferente, como "123", a saída é ainda mais confusa:

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

A saída aqui não parece "invertida", mas é embaralhada. O que (brevemente) está acontecendo aqui?

    
por Ярослав Рахматуллин 06.12.2012 / 03:55

1 resposta

1

O formato padrão é little-endian sem sinal, de 16 bits.

A página de manual do hexdump também explica o formato padrão:

 -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.
    
por 06.12.2012 / 04:06