功能说明:od将指定文件内容以八进制数、十进制数、十六进制数、浮点数或ASCII字符方式输出到标准输出显示,并且最左边一列显示字节地址偏移量,从0开始
语 法:od [OPTION…] [FILE…]
补充说明:od命令默认的显示方式是八进制数。常见的文件为文本文件和二进制文件。od命令通常用于显示或查看文件中不能直接显示在终端的字符,主要用来查看保存在二进制文件中的数据,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。大家也可以了解一下hexdump命令,默认以十六进制数输出数据,但感觉hexdump命令没有od命令强大。
选 项:
-A RADIX或–address-radix=RADIX 选择以何种基数表示字节地址偏移量。默认以八进制数显示
-j BYTES或–skip-bytes=BYTES 跳过指定数目的字节
-N BYTES或–read-bytes=BYTES 输出指定字节个数
-S [BYTES]或–strings[=BYTES] 输出长度不小于指定字节数的字符串,BYTES 缺省值为 3
-v或–output-duplicates 输出时不省略重复的数据
-w [BYTES]或–width[=BYTES] 设置每行最多显示的字节个数,BYTES 缺省为 32 字节
-t TYPE或–format=TYPE 指定输出格式,格式包括 a、c、d、f、o、u 和 x,各含义如下:
- a:具名字符。比如换行符显示为 nl
- c:可打印字符或反斜杠表示的转义字符。比如换行符显示为 \n
- d[SIZE]:SIZE 字节组成一个有符号十进制整数。SIZE 缺省值为 sizeof(int)
- f[SIZE]:SIZE 字节组成一个浮点数。SIZE 缺省为 sizeof(double)
- o[SIZE]:SIZE 字节组成一个八进制整数。SIZE 缺省为 sizeof(int)
- u[SIZE]:SIZE 字节组成一个无符号十进制整数。SIZE 缺省为 sizeof(int)
- x[SIZE]:SIZE 字节组成一个十六进制整数。SIZE 缺省为 sizeof(int)
SIZE可以1数字,也可以是大写字母。如果 TYPE 是 [doux] 中的一个,那么SIZE 可以是C = sizeof(char),S = sizeof(short),I = sizeof(int),L = sizeof(long)。如果 TYPE 是 f,那么 SIZE 可以是 F = sizeof(float),D = sizeof(double) ,L = sizeof(long double)
–help 显示帮助信息
–version 显示版本信息
参 数:
FILE… 要显示内容数据的一个或多个文件
实 例:
实例1
$ cat test.txt
abcd 12345
$ od test.txt
0000000 061141 062143 030440 031462 032464 000012
0000013
输出中的第一列是字节地址偏移量,默认以八进制数显示。
实例2
设置第一列的字节偏移地址以十进制显示:
$ od -Ad test.txt
0000000 061141 062143 030440 031462 032464 000012
0000011
实例3
不显示第一列偏移地址:
$ od -An test.txt
061141 062143 030440 031462 032464 000012
实例4
以十六进制数输出,默认以四字节为一组(一列)显示:
$ od -tx test.txt
0000000 64636261 33323120 000a3534
0000013
实例5
以十六进制数输出,每列输出1个字节:
$ od -tx1 test.txt
0000000 61 62 63 64 20 31 32 33 34 35 0a
0000013
实例6
以具名字符显示ASCII字符:
$ od -ta test.txt
0000000 a b c d sp 1 2 3 4 5 nl
0000013
以可打印字符或反斜杠表示的转义字符显示ASCII字符:
$ od -tc test.txt
0000000 a b c d 1 2 3 4 5 \n
0000013
实例7
以十六进制数显示的同时显示原字符:
$ od -tcx1 test.txt
0000000 a b c d 1 2 3 4 5 \n
61 62 63 64 20 31 32 33 34 35 0a
0000013
实例8
指定每行显示512字节:
$ od -w8 -tc test.txt
0000000 a b c d 1 2 3
0000010 4 5 \n
0000013
实例9
实现od命令输出时去除列与列之间的空格符的方法:
1 使用-An不输出偏移地址;
2 使用-v输出时不省略重复的数据;
3 使用-tx1以单个字节为一组按照十六进制输出,-w1每列输出一个字节;
4 最后通过管道传递给 awk 的标准输入,通过awk不换行输出所有行,拼接为一行输出。
$ od -An -w1 -tx1 test.txt|awk '{for(i=1;i<=NF;++i){printf "%s",$i}}'
616263642031323334350a