Files

使用 hexdump 時錯誤的字節數

  • June 1, 2021

我正在嘗試顯示包含以下記錄的二進製文件:

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 - 如果相關 -

根據手冊頁

     %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 位))

引用自:https://unix.stackexchange.com/questions/652291