曲径通幽论坛

标题: xxd -- 对输入内容或文件进行 hexdump 转换 [打印本页]

作者: beyes    时间: 2012-8-24 11:55
标题: xxd -- 对输入内容或文件进行 hexdump 转换
xxd 命令可以输入内容或文件进行 hexdump 转换,反之也可以将转换过的文件进行还原。

可以直接运行 xxd 命令,那么接着可以输出要转换的内容,完后按下 Ctrl + d 组合键,最后转换结果就会显示出来:
[beyes@beyes   man]$ xxd
www.groad.net         #输入完后按下 Ctrl + d 组合键
0000000: 7777 772e 6772 6f61 642e 6e65 740a       www.groad.net.
上面输出中,没两个字节一个段,如 772e 分别是 w 和 '.' 符号的 ASCII 十六进制码。后面的 0a 是表示的是回车换行,因为只有在回车换行后,才能按下 Ctrl + d 键。

可以直接将管道里的输入进行转换并输出:
$ echo "www.groad.net" | xxd
0000000: 7777 772e 6772 6f61 642e 6e65 740a       www.groad.net.

使用 -r 选项可以将已经转换的结果还原回原来的内容:
$ echo "www.groad.net" | xxd |xxd -r
www.groad.net

使用 -b 选项可以选择以二进制的形式打印转换结果:
$ echo "hello" | xxd -b
0000000: 01101000 01100101 01101100 01101100 01101111 00001010  hello.

可以使用 -c 选项指定一个转换行显示多少个字节:
$ echo "www.groad.net" | xxd -c8
0000000: 7777 772e 6772 6f61  www.groa
0000008: 642e 6e65 740a       d.net.
需要注意的是,-c8 和 -c 8 (中间有空格) 两种写法都是对的。

使用 -p 选项可以以平滑式十六进制风格输出:
[beyes@beyes   man]$ echo "www.groad.net" | xxd -p
7777772e67726f61642e6e65740a
如果你相对某个转换结果进行一些特殊的操作,如加密,转换,这种方式可能会比较有用。

使用 -s 选项可以从偏移处开始转换:
$ echo "www.groad.net" | xxd -s+5
0000005: 726f 6164 2e6e 6574 0a                   road.net.
上面 -s 后面的 '+' 号表示正方向偏移,也可以使用 '-'  符号往负方向偏移。

更多选项参考 man 手册。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2