Я пытаюсь отобразить двоичный файл с записями, состоящими из:
8 bytes unsigned int
4 bytes unsigned int
4 bytes unsigned int
4 bytes unsigned int
4 bytes unsigned int
Я пытаюсь отобразить это hexdump
следующим образом:
hexdump -v -e '1/8 "%015d " 4/4 " %6d" "\n"' binfile
Но я получаю:
hexdump: d: bad byte count
Я использую FreeBSD 12 -если это актуально-
решение1
Согласностраница руководства,
%d, %i, %o, %u, %X, %x Four byte default, one, two and four byte counts supported.
И, похоже, нет ни одного целочисленного типа, который поддерживал бы восемь байт (вам также понадобится %u
, не %d
длянеподписанныйцелые).
Вместо этого вы можете использовать perl
здесь:
perl -ne 'BEGIN{$/ = \24} # 24 byte input records
printf "%015u %6u %6u %6u %6u\n", unpack "QL4"' < binfile
( QL4
состоящий из 1 беззнакового четверного числа (64 бита), за которым следуют 4 беззнаковых длинных числа (32 бита))