Interpretando el volcado octal sin opciones

Interpretando el volcado octal sin opciones
$ echo "hello" | od
0000000 062550 066154 005157
0000006

Sé que la primera columna representa el desplazamiento de bytes. Pero no veo cómo se forman los otros números. Según manlo anterior debería ser "bytes octales". Sin embargo, se supone que la opción -b"selecciona bytes octales" también e imprime algo diferente:

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

EDITAR: Por cierto, esto es lo que esperaría que apareciera, es decir, los valores ascii de todos los caracteres en 'hola\n' como lo que esperaría que se llamara "bytes octales".

Respuesta1

odno muestra bytes de forma predeterminada, muestra palabras en octal. Puede que esto no sea del todo intuitivo, pero no olvides odque es unamuycomando antiguo :-) Usaré un ejemplo algo más simple que el tuyo:

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

Como Intel utiliza unlittle-endianarquitectura, los bytes \01\02se interpretan como 00000010 00000001en binario.

Como los dígitos octales representan cada uno 3 bits, podemos agrupar ese número de esta manera:

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

Entonces la representación octal de esos 2 bytes es:

001001

Para el uso diario esto es bastante inútil; quizás en el pasado era útil para depurar manualmente volcados de memoria :-)

Tu hello\nejemplo es:

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

Ahora es un poco más complicado, porque los dígitos octales representan 3 bits, pero los bytes son 8 bits; entonces se agrega relleno :-( El resultado simbólicamente es:

PehPllP\no

Recuerde, cada conjunto de 2 bytes se intercambia debido al endianismo. ElPAGes un relleno de 2 bits. El resultado en octal es (usando una barra como separador):

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

Ahora en grupos octales de 3 bits:

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

Traducido a dígitos octales:

062550066154005157

Esto coincide con su resultado.

En conclusión, probablemente hayas aprendido que odsin opciones es peor que inútil :-)

información relacionada