Recuento de bytes incorrecto al utilizar hexdump

Recuento de bytes incorrecto al utilizar hexdump

Estoy intentando mostrar un archivo binario con registros que consisten en:

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

Intento mostrarlo usando hexdumpla siguiente manera:

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

Pero obtengo:

hexdump: d: bad byte count

Estoy usando FreeBSD 12 -si es relevante-

Respuesta1

De acuerdo con lapágina de manual,

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

Y no parece haber ningún tipo de número entero que admita ocho bytes (también necesitarías %u, no %dparano firmadoenteros).

Podrías usar perlen su lugar aquí:

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

( QL4siendo 1 quad sin firmar (64 bits) seguido de 4 largos sin firmar (32 bits))

información relacionada