Entendendo a opção hexdump '-e'

5

Estou tentando entender a opção de formatação do hexdump. Eu li a man page e ela diz que eu posso dizer qual formato a saída de dados usando a opção -e . No entanto, eu não posso para a vida de mim entender o código para a opção. Por enquanto, estou apenas tentando imprimir linhas aleatórias de / dev / random assim:

6568:6C6C:7565:7568:2E62:716D:2E2C:7563

(Basicamente, um endereço IPv6 psuedo.) No entanto, eu realmente gostaria de entender as strings de formatação, e não apenas ter uma que faça o truque. Eu tentei ler a página do manual e não ajudou muito - parecia referir-se a ele ser semelhante ao código C. Bem, eu quase não tenho experiência com C, então estou preso. Alguém pode explicar isso?

    
por Azendale 10.07.2011 / 08:32

1 resposta

6

Na página de manual para hexdump , há uma seção inteira dedicada à estrutura das strings de formato (procure por "Uma string de formato contém qualquer número de unidades de formato").

Para obter a saída que você procura, a seguinte convocação deve funcionar:

hexdump -e '7 2 "%04X:" 1 2 "%04X\n"' input_file

A string de formato aqui tem duas partes. O primeiro é repetido 7 vezes, formando dois bytes de cada vez formatados com "%04X:" (quatro dígitos hexadecimais com preenchimento de zero, seguidos de dois pontos). A segunda parte é repetida apenas uma vez e recebe dois bytes formatados com "%04X\n" para concluir a linha de saída. Este processo é então repetido à medida que mais dados são lidos a partir do arquivo de entrada.

    
por James Henstridge 10.07.2011 / 10:04