Неправильное количество байтов при использовании hexdump

Неправильное количество байтов при использовании hexdump

Я пытаюсь отобразить двоичный файл с записями, состоящими из:

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 бита))

Связанный контент