使用 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

QL41 個無符號四邊形(64 位元)後面跟著 4 個無符號長整型(32 位元))

相關內容