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 %d
fürohne Vorzeichen(Ints).
Sie könnten perl
stattdessen Folgendes verwenden:
perl -ne 'BEGIN{$/ = \24} # 24 byte input records
printf "%015u %6u %6u %6u %6u\n", unpack "QL4"' < binfile
( QL4
dabei handelt es sich um 1 vorzeichenloses Quad (64 Bit), gefolgt von 4 vorzeichenlosen Longs (32 Bit))