hexdump

hexdump

hexdump用於以16進制、10進制、8進制、ascii碼形式打印文件內容,也能夠是標準輸入的內容。shell

用法code

hexdump [選項] 文件 ...orm

選項ci

選項 參數 說明
-b 單字節8進制格式顯示
-c 單字節字符格式顯示
-o 兩byte八進制格式顯示
-d 兩byte十進制格式顯示
-x 兩byte十六進制格式顯示
-C 標準的hex+ASCII格式顯示
-e 格式 指定格式化輸出表達式
-f 格式文件 指定格式換輸出表達式文件
-n 長度 僅顯示指定長度字節的數據
-s 偏移 跳過指定長度字節的數據
-v 顯示時不壓縮類似的行

前面六個選項實際上是經過後面五個選項實現的顯示效果。字符串

hexdump高級用法:table

-e 指定格式字符串,格式字符串包含在一對單引號中,格式字符串形如form

'a/b "format1" "format2"'class

每一個格式字符串由三部分組成,每一個部分由空格分隔,第一個形如a/b,表示每a個元素爲一行,每一個元素佔b個字節。b表示對每b個輸入字節應用format1格式,a表示對每a個輸入字節應用format2格式,通常a>b,且b只能爲1,2,4,另外a能夠省略,省略則a=1。format1和format2中能夠使用相似printf的格式字符串,如:數據

  • %02d:兩位十進制
  • %03x:三位十六進制
  • %02o:兩位八進制
  • %c:單個字符等

還有一些特殊的用法:tab

  • %_ad:標記下一個輸出字節序序列的偏移序號,用十進制表示
  • %_ax:標記下一個輸出字節序序列的偏移序號,用十六進制表示
  • %_ao:標記下一個輸出字節序序列的偏移序號,用八進制表示
  • %_p:對不能以常規字符顯示的用.代替

同一行若是要顯示多個格式字符串,則能夠跟多個-e選項

hexdump -e '1/4 "0x%08_ax "' -e '1/4 "%08X " " | "' -e '4/1 "%01_p" " |\n"' sum_of_array.bin

效果

$ hexdump  -e '1/4 "0x%08_ax   "' -e '1/4 "%08X " " |  "' -e '4/1 "%01_p" " |\n"' sum_of_array.bin
0x00000000   EAFFFFFF  |  .... |
0x00000004   E59F0018  |  .... |
0x00000008   E59F1018  |  .... |
0x0000000c   E3A03000  |  .0.. |
0x00000010   E4D12001  |  . .. |
0x00000014   E0823003  |  .0.. |
0x00000018   E1510000  |  ..Q. |
0x0000001c   1AFFFFFB  |  .... |
0x00000020   EAFFFFFE  |  .... |
0x00000024   0000002F  |  /... |
0x00000028   0000002C  |  ,... |
0x0000002c   0019140A  |  ...  |
相關文章
相關標籤/搜索