Interpretando dump octal sem opções

Interpretando dump octal sem opções
$ echo "hello" | od
0000000 062550 066154 005157
0000006

Eu sei que a primeira coluna representa o deslocamento de bytes. Mas não vejo como os outros números são formados. De acordo com mano acima exposto, devem ser "bytes octais". No entanto, a opção -btambém deve "selecionar bytes octais" e imprime algo diferente:

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

EDIT: A propósito, isso é o que eu esperaria que aparecesse, ou seja, os valores ascii de todos os caracteres em 'hello\n' como o que eu esperaria ser chamado de "bytes octais".

Responder1

odnão mostra bytes por padrão, mostra palavras em octal. Isto pode não ser muito intuitivo, mas não se esqueça odque é umamuitocomando antigo :-) Usarei um exemplo um pouco mais simples do que você:

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

Como a Intel usa umpequeno endianarquitetura, os bytes \01\02são interpretados como 00000010 00000001em binário.

Como cada dígito octal representa 3 bits, podemos agrupar esse número assim:

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

Portanto, a representação octal desses 2 bytes é:

001001

Para o uso diário, isso é bastante inútil; talvez antigamente fosse útil para depurar manualmente despejos de memória :-)

Seu hello\nexemplo é:

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

Agora é um pouco mais complicado, porque os dígitos octais representam 3 bits, mas os bytes são 8 bits; então o preenchimento é adicionado :-( O resultado simbolicamente é:

PehPllP\no

Lembre-se de que cada conjunto de 2 bytes é trocado devido ao endianness. OPé um preenchimento de 2 bits. O resultado em octal é (usando uma barra como separador):

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

Agora em grupos octais de 3 bits:

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

Traduzido em dígitos octais:

062550066154005157

Isso corresponde ao seu resultado.

Concluindo, você provavelmente aprendeu que odsem opções é pior que inútil :-)

informação relacionada