hexdump

hexdump

hexdump用于以16进制、10进制、8进制、ascii码形式打印文件内容,也可以是标准输入的内容。

用法

hexdump [选项] 文件 ...

选项

选项 参数 说明
-b 单字节8进制格式显示
-c 单字节字符格式显示
-o 两byte八进制格式显示
-d 两byte十进制格式显示
-x 两byte十六进制格式显示
-C 标准的hex+ASCII格式显示
-e 格式 指定格式化输出表达式
-f 格式文件 指定格式换输出表达式文件
-n 长度 仅显示指定长度字节的数据
-s 偏移 跳过指定长度字节的数据
-v 显示时不压缩相似的行

前面六个选项其实是通过后面五个选项实现的显示效果。

hexdump高级用法:

-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如

'a/b "format1" "format2"'

每个格式字符串由三部分组成,每个部分由空格分隔,第一个形如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:单个字符等

还有一些特殊的用法:

  • %_ad:标记下一个输出字节序序列的偏移序号,用十进制表示
  • %_ax:标记下一个输出字节序序列的偏移序号,用十六进制表示
  • %_ao:标记下一个输出字节序序列的偏移序号,用八进制表示
  • %_p:对不能以常规字符显示的用.代替

同一行如果要显示多个格式字符串,则可以跟多个-e选项

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

效果

$ hexdump  -e '1/4 "0x%08_ax   "' -e '1/4 "%08X " " |  "' -e '4/1 "%01_p" " |
"' 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  |  ...  |
原文地址:https://www.cnblogs.com/thammer/p/10607198.html