Falsche Byteanzahl bei Verwendung von Hexdump

Falsche Byteanzahl bei Verwendung von Hexdump

Ich versuche, eine Binärdatei mit Datensätzen anzuzeigen, die aus Folgendem bestehen:

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

Ich versuche es wie folgt darzustellen hexdump:

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

Aber ich verstehe:

hexdump: d: bad byte count

Ich verwende FreeBSD 12 -falls relevant-

Antwort1

Entsprechend dermanpage,

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

Und es scheint keinen Integer-Typ zu geben, der 8 Byte unterstützt (Sie benötigen auch %u, nicht %dfürohne Vorzeichen(Ints).

Sie könnten perlstattdessen Folgendes verwenden:

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

( QL4dabei handelt es sich um 1 vorzeichenloses Quad (64 Bit), gefolgt von 4 vorzeichenlosen Longs (32 Bit))

verwandte Informationen