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 hexdump
la 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 %d
parano firmadoenteros).
Podrías usar perl
en su lugar aquí:
perl -ne 'BEGIN{$/ = \24} # 24 byte input records
printf "%015u %6u %6u %6u %6u\n", unpack "QL4"' < binfile
( QL4
siendo 1 quad sin firmar (64 bits) seguido de 4 largos sin firmar (32 bits))