Contagem de bytes incorreta ao usar hexdump

Contagem de bytes incorreta ao usar hexdump

Estou tentando exibir um arquivo binário com registros que consistem em:

8 bytes unsigned int
4 bytes unsigned int
4 bytes unsigned int
4 bytes unsigned int
4 bytes unsigned int

Tento exibi-lo usando hexdumpo seguinte:

hexdump -v -e '1/8 "%015d " 4/4 " %6d" "\n"' binfile

Mas eu entendo:

hexdump: d: bad byte count

Estou usando o FreeBSD 12 -se relevante-

Responder1

De acordo compágina de manual,

     %d, %i, %o, %u, %X, %x  Four byte default, one, two and four byte
                             counts supported.

E não parece haver nenhum tipo inteiro onde oito bytes sejam suportados (você também precisaria %u, não %dparanão assinadoentradas).

Você poderia usar perlaqui:

perl -ne 'BEGIN{$/ = \24} # 24 byte input records
          printf "%015u %6u %6u %6u %6u\n", unpack "QL4"' < binfile

( QL4sendo 1 quad não assinado (64 bits) seguido por 4 longos não assinados (32 bits))

informação relacionada