O que significa '005' na saída do comando linux od?

2

Eu tenho um arquivo chamado input_file , o seguinte é o conteúdo de input_file :

$ cat input_file     
1
2
3
4
5
6
7
8
9

então eu corro o seguinte comando:

$ od -to2 input_file

Saída:

0000000 005061 005062 005063 005064 005065 005066 005067 005070
0000020 005071
0000022

Minha pergunta é: o que significa '005' na saída de od ?

    
por Ren 20.08.2016 / 14:53

2 respostas

5

A opção de saída escolhida terá 2 bytes e exibirá o resultado como um número octal.

Então, o seu começa com o dígito 1 e o caractere \n . Podemos ver isso mais fácil com od -cx :

% od -cx f
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
           0a31    0a32    0a33    0a34    0a35    0a36    0a37    0a38
0000020   9  \n
           0a39
0000022

Com seu od -to2 , ele pegará esses 2 caracteres e os tratará como um "byte baixo e alto byte" de um número de 16 bits.

Portanto, o número funciona para 10 * 256 + 49 (o \n é ASCII 10 e é o byte alto; o 1 é ASCII 49 e é o byte baixo). Essa soma é 2609.

2609, em octal, é 005061 - que é o primeiro número em sua saída. (Em hexa é a31, que também corresponde à saída od -cx ).

Então é isso que você está vendo; od está convertendo sua entrada em inteiros de 16 bits e exibindo-os em octal.

    
por 20.08.2016 / 15:04
1

Isso não significa muito. Você pode obter uma imagem melhor usando a opção -h (hexadecimal). Por que vale a pena, aqui está a primeira linha renderizada em decimal / octal / hexadecimal / caractere / utf8:

005061: 2609 05061 0xa31 text "21" utf8 001
005062: 2610 05062 0xa32 text "22" utf8 002
005063: 2611 05063 0xa33 text "23" utf8 003
005064: 2612 05064 0xa34 text "24" utf8 004
005065: 2613 05065 0xa35 text "25" utf8 005
005066: 2614 05066 0xa36 text "26" utf8 006
005067: 2615 05067 0xa37 text "27" utf8 007
005070: 2616 05070 0xa38 text "28" utf8 000

Ou seja, todos os outros byte são 012 ( ^J ) e cada outro byte é um dígito decimal. O utf8 veio para "livre" por causa do programa que eu usei ( ver hex ) .

    
por 20.08.2016 / 15:04

Tags