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/1 "%08_ax: "' -e '4/4 "%08X " "\n"' -v test.bin

hexdump -e '1/1 "%08_ax: "' -e '4/1 "%08X " "  |  "' -e '16/1 "%_p" "\n"' -v test.bin

hexdump -e '1/1 "%08_ad: "' -e '/1 "hex = %08X | "' -e '1/1 "dec = %10d | "' -e '/1 "\n"' -v test.bin

猜你喜欢

转载自www.cnblogs.com/sinferwu/p/12074610.html