http://blog.sina.com.cn/s/blog_a6559d920101gvlk.html

hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别有用,配合eeprom来用简直是绝配。

今天我们来介绍一个hexdump命令的使用:

首先我们准备一个测试用的文件test,十六进制如下:

[plain] view
plain
copy

 
  1. 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  2. 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
  3. 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
[plain] view
plain
copy

 
  1. 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  2. 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
  3. 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F

选项:

-n length

只格式化输入文件的前length个字节

-C 输出十六进制和对应字符

输入:

[plain] view
plain
copy

 
  1. hexdump -n 13 -C test
[plain] view
plain
copy

 
  1. hexdump -n 13 -C test

输出:

[plain] view
plain
copy

 
  1. 00000000  00 01 02 03 04 05 06 07  08 09 0a 0b 0c           |.............|
  2. 0000000d
[plain] view
plain
copy

 
  1. 00000000  00 01 02 03 04 05 06 07  08 09 0a 0b 0c           |.............|
  2. 0000000d

-s 从偏移量开始输出

输入:

[plain] view
plain
copy

 
  1. hexdump -n 13 -C -s 30 test
[plain] view
plain
copy

 
  1. hexdump -n 13 -C -s 30 test

输出:

[plain] view
plain
copy

 
  1. 0000001e  1e 1f 20 21 22 23 24 25  26 27 28 29 2a           |.. !"#$%&'()*|
  2. 0000002b
[plain] view
plain
copy

 
  1. 0000001e  1e 1f 20 21 22 23 24 25  26 27 28 29 2a           |.. !"#$%&'()*|
  2. 0000002b
hexdump高级用法:

-e
指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:
'a/b "format1"
"format2"'


个格式字符串由三部分组成,每个由空格分隔,第一个形如a/b,b表示对每b个输入字节应用format1格式,a表示对每a个输入字节应用
format2格式,一般a>b,且b只能为1,2,4,另外a可以省略,省略则a=1。format1和format2中可以使用类似
printf的格式字符串,如:
d:两位十进制
x:三位十六进制
o:两位八进制
%c:单个字符

还有一些特殊的用法:
%_ad:标记下一个输出字节的序号,用十进制表示
%_ax:标记下一个输出字节的序号,用十六进制表示
%_ao:标记下一个输出字节的序号,用八进制表示
%_p:对不能以常规字符显示的用.代替
同一行如果要显示多个格式字符串,则可以跟多个-e选项
例1:
输入:
[plain] view
plain
copy

 
  1. hexdump -e '16/1 "X " "  |  "' -e '16/1 "%_p" "\n"' test
[plain] view
plain
copy

 
  1. hexdump -e '16/1 "X " "  |  "' -e '16/1 "%_p" "\n"' test

输出:

[plain] view
plain
copy

 
  1. 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  |  ................
  2. 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F  |  ................
  3. 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F  |   !"#$%&'()*+,-./
[plain] view
plain
copy

 
  1. 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  |  ................
  2. 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F  |  ................
  3. 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F  |   !"#$%&'()*+,-./

 
例2:
输入:
[plain] view
plain
copy

 
  1. hexdump -e '1/1 "0x_ax "' -e '8/1 "X " " *  "' -e '8/1 "%_p" "\n"' test
[plain] view
plain
copy

 
  1. hexdump -e '1/1 "0x_ax "' -e '8/1 "X " " *  "' -e '8/1 "%_p" "\n"' test
输出:
[plain] view
plain
copy

 
  1. 0x00000000 00 01 02 03 04 05 06 07 *  ........
  2. 0x00000008 08 09 0A 0B 0C 0D 0E 0F *  ........
  3. 0x00000010 10 11 12 13 14 15 16 17 *  ........
  4. 0x00000018 18 19 1A 1B 1C 1D 1E 1F *  ........
  5. 0x00000020 20 21 22 23 24 25 26 27 *   !"#$%&'
  6. 0x00000028 28 29 2A 2B 2C 2D 2E 2F *  ()*+,-./
[plain] view
plain
copy

 
  1. 0x00000000 00 01 02 03 04 05 06 07 *  ........
  2. 0x00000008 08 09 0A 0B 0C 0D 0E 0F *  ........
  3. 0x00000010 10 11 12 13 14 15 16 17 *  ........
  4. 0x00000018 18 19 1A 1B 1C 1D 1E 1F *  ........
  5. 0x00000020 20 21 22 23 24 25 26 27 *   !"#$%&'
  6. 0x00000028 28 29 2A 2B 2C 2D 2E 2F *  ()*+,-./
例3:
输入:
[plain] view
plain
copy

 
  1. hexdump -e '1/1 "_ad#    "' -e '/1 "hex = X * "' -e '/1 "dec = d | "' -e '/1 "oct = o"' -e '/1 " \_\n"' -n 20 test
[plain] view
plain
copy

 
  1. hexdump -e '1/1 "_ad#    "' -e '/1 "hex = X * "' -e '/1 "dec = d | "' -e '/1 "oct = o"' -e '/1 " \_\n"' -n 20 test
输出:
[plain] view
plain
copy

 
  1. 00#    hex = 00 * dec = 000 | oct = 000 _
  2. 01#    hex = 01 * dec = 001 | oct = 001 _
  3. 02#    hex = 02 * dec = 002 | oct = 002 _
  4. 03#    hex = 03 * dec = 003 | oct = 003 _
  5. 04#    hex = 04 * dec = 004 | oct = 004 _
  6. 05#    hex = 05 * dec = 005 | oct = 005 _
  7. 06#    hex = 06 * dec = 006 | oct = 006 _
  8. 07#    hex = 07 * dec = 007 | oct = 007 _
  9. 08#    hex = 08 * dec = 008 | oct = 010 _
  10. 09#    hex = 09 * dec = 009 | oct = 011 _
  11. 10#    hex = 0A * dec = 010 | oct = 012 _
  12. 11#    hex = 0B * dec = 011 | oct = 013 _
  13. 12#    hex = 0C * dec = 012 | oct = 014 _
  14. 13#    hex = 0D * dec = 013 | oct = 015 _
  15. 14#    hex = 0E * dec = 014 | oct = 016 _
  16. 15#    hex = 0F * dec = 015 | oct = 017 _
  17. 16#    hex = 10 * dec = 016 | oct = 020 _
  18. 17#    hex = 11 * dec = 017 | oct = 021 _
  19. 18#    hex = 12 * dec = 018 | oct = 022 _
  20. 19#    hex = 13 * dec = 019 | oct = 023 _

最新文章

  1. 19-typedef
  2. Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事
  3. sublime使用小技巧——自动保存后缀名与自动匹配语法
  4. 十分钟使用github pages +hexo拥有个人博客
  5. 15天玩转redis —— 第四篇 哈希对象类型
  6. Oracle 数据库基础学习 (三) Oracle 四个表结构
  7. [ html canvas putImageData ] canvas绘图属性 putImageData 属性讲解
  8. SharePoint服务器将连接配置数据库的连接字符串保存在什么地方?
  9. 【三支火把】---C语言面试问题总结
  10. Hadoop RPC源码阅读-交互协议
  11. 关于C#中的弱引用
  12. 在linux系统中I/O 调度的选择
  13. redis的一些修改
  14. 基于DBUtils实现数据库连接池
  15. ckplayer跨域调用
  16. Apache与Nginx
  17. 图的基本操作(基于邻接表):图的构造,深搜(DFS),广搜(BFS)
  18. FMX TListView 搜索 Search
  19. apache commons pool
  20. 浅谈splay的双旋

热门文章

  1. Redis学习篇(十一)之发布订阅
  2. Hibernate 基于外键的单项一对一关联映射
  3. 【BZOJ 3676】 3676: [Apio2014]回文串 (SAM+Manacher+倍增)
  4. 【HDU 6021】 MG loves string (枚举+容斥原理)
  5. [BZOJ4320][ShangHai2006]Homework(根号分治+并查集)
  6. 【坐标变换】【二维偏序】【线段树】Gym - 100820G - Racing Gems
  7. Problem C: 深入浅出学算法004-求多个数的最小公倍数
  8. bzoj 3784
  9. 编程经验(C#)
  10. YII 关联查询