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.

そして8バイト整数型のサポートはないようです(代わりに%u%d署名されていない整数)。

ここで使用できますperl

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

QL4符号なしクワッド(64ビット)1個、符号なしロングクワッド(32ビット)4個)

関連情報