参数简介

xxd -h[elp]
xxd [options] [infile [outfile]]
xxd -r[evert] [options] [infile [outfile]]

如果没有指定输入文件, 则采用标准输入。

-b: 以2进制格式进行输出

[work@cq02.com src]$ xxd -b train.ini
0000000: 01011011 01110100 01110010 01100001 01101001 01101110  [train
0000006: 01011101 00001101 00001010 01101110 01100111 01110010  ]..ngr
000000c: 01100001 01101101 01100110 01101001 01101100 01100101  amfile

-c: 每行输出多少个字节

[work@cq02-.com src]$ xxd -c4 train.ini
0000000: 5b74 7261  [tra
0000004: 696e 5d0d  in].
....

-g: 几个字节组成一组

[work@cq02.com src]$ xxd -g4 train.ini
0000000: 5b747261 696e5d0d 0a6e6772 616d6669  [train]..ngramfi
0000010: 6c653d22 6e675f32 772e7478 74220d0a  le="ng_2w.txt"..
0000020: 69746572 636f756e 743d3430 30300d0a  itercount=4000..

-i:将文件内容输出成 c的一个数组格式  

[work@cq02-.com src]$ xxd -i train.ini
unsigned char train_ini[] = {0x5b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x5d, 0x0d, 0x0a, 0x6e, 0x67, 0x72,0x61, 0x6d, 0x66, 0x69, 0x6c, 0x65, 0x3d, 0x22, 0x6e, 0x67, 0x5f, 0x32,。。。。0x69, 0x73, 0x74, 0x22
};
unsigned int train_ini_len = 148;

-l : 输出几个字节后结束

[work@cq02.com src]$ xxd -l12 train.ini0000000: 5b74 7261 696e 5d0d 0a6e 6772            [train]..ngr

-p:以一个整块输出所有的hex, 不使用空格进行分割

[work@cq02.com src]$ xxd -p train.ini
5b747261696e5d0d0a6e6772616d66696c653d226e675f32772e74787422
0d0a69746572636f756e743d343030300d0a73766d6761703d302e303030
310d0a74656d706469723d2274656d70220d0a7664636c6973743d227664
632e7478742220204f520d0a77686974656c6973743d2277686974652e6c
697374220d0a626c61636b6c6973743d22626c61636b2e6c69737422

-r: 反转操作,将16进制专程2进制

-s [+][-]seek : 从第几个字符开始

[work@cq02.com src]$ xxd -s5 train.ini
0000005: 6e5d 0d0a 6e67 7261 6d66 696c 653d 226e  n]..ngramfile="n
0000015: 675f 3277 2e74 7874 220d 0a69 7465 7263  g_2w.txt"..iterc
0000025: 6f75 6e74 3d34 3030 300d 0a73 766d 6761  ount=4000..svmga

-u : 输出采用大写

使用范例

显示 file 除了 前 三行 (十六进制 的 0×30) 的 所有 内容.

xxd -s 0×30 file

显示 file 最后 三行 (十六进制 的 0×30) 的 所有 内容.

xxd -s -0×30 file

显示 120 个 字符, 每行 20 个 字符, 连续 显示.

xxd -l 120 -ps -c 20 xxd.1
2e544820585844203120224d616e75616c207061
676520666f7220787864220a2e5c220a2e5c2220
32317374204d617920313939360a2e5c22204d61
6e207061676520617574686f723a0a2e5c222020
2020546f6e79204e7567656e74203c746f6e7940
7363746e7567656e2e7070702e67752e6564752e

显示 120 个 字符, 每行 12 个 字符.

xxd -l 120 -c 12 xxd.1
0000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 “M
000000c: 616e 7561 6c20 7061 6765 2066 anual page f
0000018: 6f72 2078 7864 220a 2e5c 220a or xxd”..\”.
0000024: 2e5c 2220 3231 7374 204d 6179 .\” 21st May
0000030: 2031 3939 360a 2e5c 2220 4d61 1996..\” Ma
000003c: 6e20 7061 6765 2061 7574 686f n page autho
0000048: 723a 0a2e 5c22 2020 2020 546f r:..\” To
0000054: 6e79 204e 7567 656e 7420 3c74 ny Nugent 
0000060: 6f6e 7940 7363 746e 7567 656e ony@sctnugen
000006c: 2e70 7070 2e67 752e 6564 752e .ppp.gu.edu.

只 显示 xxd.1 中 的 日期.

xxd -s 0×28 -l 12 -c 12 xxd.1
0000028: 3231 7374 204d 6179 2031 3939 21st May 199

把 input_file 考到 output_file 并 在 前面 增加 100 个 字节的 0×00.

xxd input_file | xxd -r -s 100 > output_file

给 档桉 xxd.1 中的 日期 打 补钉.

echo ‘0000029: 3574 68′ | xxd -r – xxd.1
xxd -s 0×28 -l 12 -c 12 xxd.1
0000028: 3235 7468 204d 6179 2031 3939 25th May 199

建立 一个 65537 字节的 档桉, 所有 字节 都是 0×00, 除了 最后 一个 字节 是 ‘A’ (十六进制 0×41).

echo ‘010000: 41′ | xxd -r > file

打开 autoskip, 显示 上例 中 建立的 档桉.

xxd -a -c 12 file
0000000: 0000 0000 0000 0000 0000 0000 …………
*
000fffc: 0000 0000 40 ….A

建立 一个 只 含有 一个 ‘A’ 的 档桉. ‘-r -s’ 后面 的数字 同 档桉 中的 行号 相 抵消; 结果是 开头 的 字节 被跳过了.

echo ‘010000: 41′ | xxd -r -s -0×10000 > file

从 串行线 中 读入 一个个的 单独的 字符.

xxd -c1 < /dev/term/b &
stty < /dev/term/b -echo -opost -isig -icanon min 1
echo -n foo > /dev/term/b

当我们需要把二进制转成c语言中使用的16进制字符数组时,命令xxd是很有用的。

xxd 帮助信息如下:关键选项标黑。

[root@localhost ]# xxd --help
Usage:xxd [options] [infile [outfile]]orxxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
Options:-a          toggle autoskip: A single '*' replaces nul-lines. Default off.-b          binary digit dump (incompatible with -p,-i,-r). Default hex.-c cols     format <cols> octets per line. Default 16 (-i: 12, -ps: 30).-E          show characters in EBCDIC. Default ASCII.-g          number of octets per group in normal output. Default 2. 每个goup的字节数,默认为2,可设置。-h          print this summary.-i          output in C include file style. :输出为c包含文件的风格,数组方式存在。-l len      stop after <len> octets.        :转换到len个字节后停止转换。-ps         output in postscript plain hexdump style.-r          reverse operation: convert (or patch) hexdump into binary.-r -s off   revert with <off> added to file positions found in hexdump.-s [+][-]seek start at <seek> bytes abs. (or +: rel.) infile offset.-u          use upper case hex letters. : 字节大写方式-v          show version: "xxd V1.10 27oct98 by Juergen Weigert".

比如运行:

> xxd -g 1 -i -u -l 10000000 nm.ts > xxd_test.txt

生成的文本显示:

unsigned char __0513_1634_ch32_666_10_ts[] = {
0X47, 0X02, 0X03, 0X13, 0XF8, 0X5A, 0XC5, 0X40, 0X26, 0XE4, 0XD0, 0XDE,
0XAD, 0XB8, 0X76, 0X89, 0X85, 0X23, 0X06, 0X04, 0X6E, 0X05, 0X8B, 0X09,
0XC0, 0X5C, 0X96, 0X4F, 0X18, 0X51, 0X41, 0XC8, 0X40, 0X9F, 0X06, 0X93,
0X38, 0XC1, 0XBB, 0X1A, 0XBC, 0XAC, 0X47, 0XFF, 0X5E, 0X54, 0XEB, 0XA7,
0X14, 0X36, 0X85, 0X8A, 0X90, 0X14, 0X17, 0XA2, 0X9D, 0XC0, 0X84, 0X56,
0XCB, 0X97, 0X78, 0XC8, 0X57, 0X15, 0X3E, 0X61, 0X6F, 0XFE, 0XC9, 0X39,
0XEF, 0XD3, 0XB6, 0X6A, 0XD2, 0XE4, 0XFB, 0X4C, 0X05, 0XF6, 0X03, 0XED,
0X50, 0XB3, 0XE7, 0X46, 0X57, 0X24, 0X71, 0X16, 0X38, 0X45, 0X53, 0X19,
0X56, 0X25, 0X3C, 0X8D, 0X4C, 0XA9, 0X28, 0X9A, 0XB2, 0X99, 0X76, 0X52,
0X28, 0XE9, 0XD6, 0XD6, 0X11, 0X94, 0X89, 0X19, 0X4D, 0XEA, 0X68, 0X76,
0X53, 0XC6, 0XAA, 0X3A, 0XD4, 0XA1, 0X25, 0XA5, 0X03, 0XB0, 0X73, 0XA0,
0XAE, 0X11, 0XC9, 0XBD, 0X37, 0X17, 0X11, 0X5F, 0X30, 0X34, 0X34, 0X0B.....};unsigned int nm.ts_len = 10000000;

另外,在vim中也可以把文件转换为16进制来显示:

:%!xxd

返回正常显示:

:%!xxd -r

linux xxd命令 十六进制显示文件相关推荐

  1. linux命令实例教程,Linux xxd命令入门示例教程

    你是否需要使用二进制或十六进制格式显示文件内容? 寻找可以执行此操作的命令行实用程序? 那,你很幸运,因为存在一个名为xxd的命令可以为你做到这一点. 在本教程中,我们将使用一些易于理解的示例来讨论x ...

  2. 8.Linux文件管理命令---head显示文件头部--tail显示文件尾部

    8.Linux文件管理命令-head显示文件头部–tail显示文件尾部 文章目录 Linux文件管理命令 head显示文件头部 练习案例 tail显示文件尾部 练习案例 Linux文件管理命令 hea ...

  3. Linux tail命令:显示文件结尾的内容

    tail 命令和 head 命令正好相反,它用来查看文件末尾的数据,其基本格式如下: [root@localhost ~]# tail [选项] 文件名 此命令常用的选项及含义如表 1 所示. 表 1 ...

  4. Linux head命令:显示文件开头的内容

    head 命令可以显示指定文件前若干行的文件内容,其基本格式如下: [root@localhost ~]# head [选项] 文件名 该命令常用选项以及各自的含义,如表 1 所示. 表 1 head ...

  5. Linux xxd命令详解

    xxd命令可以为给定的标准输入或者文件做一次十六进制的输出,它也可以将十六进制输出转换为原来的二进制格式,即将任意文件转换为十六进制或二进制形式 如果没有给定输入文件,标准输入就作为输入文件infil ...

  6. linux stat文件,Linux stat命令:显示文件或文件系统的详细信息

    在 Linux 中,文件有访问时间.数据修改时间.状态修改时间这三个时间,而没有创建时间.stat 是査看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下. 命令名称:stat. 英文 ...

  7. linux xxd命令

    请在地址栏输入要查询的 linux 命令.如:访问 http://www.npcsc.com/man/wget 将获得 wget 命令的使用说明. type linux command behind ...

  8. linux stat命令

    linux stat命令主要用于显示文件或文件系统的详细信息: stat test.sh File: 'test.sh'Size: 38 Blocks: 8 IO Block: 4096 regula ...

  9. Linux超级强大的十六进制dump工具:XXD命令,我教你应该如何使用!

    在Linux操作系统中,XXD是一个十六进制dump工具,可以将二进制文件转换为十六进制表示,并以可读的形式显示.XXD命令可用于显示文件内容.编辑文件等用途.本文将介绍如何在Linux中使用XXD命 ...

最新文章

  1. android都图片mat_Android内存泄露整理
  2. 吹捧导师师娘的论文作者,被处理了!
  3. Javascript:郁闷了好久终于找到原因了,原理还不明白
  4. 【转】Win7、Ubuntu双系统正确卸载Ubuntu系统--不错
  5. React-Native系列Android——Native与Javascript通信原理(一)
  6. 表的插入、更新、删除、合并操作_6_通过多表关联插入
  7. Alamofire源码导读二:发起请求及内部加锁的逻辑
  8. 【软件开发底层知识修炼】二十三 ABI-应用程序二进制接口三之深入理解函数栈帧的形成与摧毁
  9. 【Codeforces 1096D】Easy Problem
  10. python萌新:从零基础入门到放弃
  11. ASP.NET服务器控件查询
  12. MySQL 磁盘满了,怎么办??
  13. 基于java的在校大学生贷款管理系统
  14. 神舟微型计算机系统重装步骤,电脑重装系统步骤,最简单安全的操作!
  15. 职场险恶,程序员看完都惊呆了
  16. 宝利德余海军浙商封面 :新数智时代的修行者
  17. win8.1装VHD的XP
  18. 【操作教程】EasyNVR视频边缘计算网关硬件如何关闭匿名登录?
  19. 日本价值链促进会(IVI)秘书长西冈靖之:日本工业互联网发展情况
  20. 补码数的加法,乘法溢出

热门文章

  1. Go 语言编程 — go-restful RESTful 框架
  2. Go 语言编程 — net/http — HTTP 客户端
  3. DPDK — 数据平面开发技术
  4. Makefile的语法
  5. 【BZOJ2117】 [2010国家集训队]Crash的旅游计划
  6. 可持久化链表(链式前向星)
  7. Java面向对象之继承,方法重写,super关键字,员工类系列继承题
  8. XenApp/XenDesktop 7.11中对于视频、图片、文字的优化的说明
  9. React Native填坑之旅--动画篇
  10. IE9(测试版)浏览器实用快捷键使用方法