linux shell 命令学习(5) xxd- make a hexdump or do the reverse.
对于标准输入或者给定的文件,显示其16进制的内容。也可以反过来进行转换。
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.ini 0000000: 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 : 输出采用大写