我正在尝试显示一个二进制文件,其中的记录包括:
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 位))