Linux od 命令

od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。

常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。

语法

od(选项)(参数)

选项

选项 说明
-a 此参数的效果和同时指定“-ta”参数相同;
-A <字码基数>`
-b 此参数的效果和同时指定“-toC”参数相同;
-c 此参数的效果和同时指定“-tC”参数相同;
-d 此参数的效果和同时指定“-tu2”参数相同;
-f 此参数的效果和同时指定“-tfF”参数相同;
-h 此参数的效果和同时指定“-tx2”参数相同;
-i 此参数的效果和同时指定“-td2”参数相同;
-j<字符数目>或--skip-bytes=<字符数目> 略过设置的字符数目;
-l 此参数的效果和同时指定“-td4”参数相同;
-N<字符数目>或--read-bytes=<字符数目> 到设置的字符树目为止;
-o 此参数的效果和同时指定“-to2”参数相同;
-s<字符串字符数>或--strings=<字符串字符数> 只显示符合指定的字符数目的字符串;
-t<输出格式>或--format=<输出格式> 设置输出格式;
-v或--output-duplicates 输出时不省略重复的数据;
-w<每列字符数>或--width=<每列字符数> 设置每列的最大字符数;
-x 此参数的效果和同时指定“-h”参数相同;
--help 在线帮助;
--version 显示版本信息。

参数

文件:指定要显示的文件。

实例

  • [linuxde@localhost ~]$ echo abcdef g > tmp
    [linuxde@localhost ~]$ cat tmp
    abcdef g
    
  • 说明:先准备一个tmp文件
  • [linuxde@localhost ~]$ od -b tmp
    0000000 141 142 143 144 145 146 040 147 012
    0000011
    
  • 说明:使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节
  • [linuxde@localhost ~]$ od -c tmp
    0000000   a   b   c   d   e   f       g  \n
    0000011
    
  • 说明:使用ASCII码进行输出,注意其中包括转义字符
  • [linuxde@localhost ~]$ od -t d1 tmp
    0000000   97   98   99  100  101  102   32  103   10
    0000011
    
  • 说明:使用单字节十进制进行解释
  • [linuxde@localhost ~]$ od -A d -c tmp
    0000000   a   b   c   d   e   f       g  \n
    0000009
    
  • 说明:设置地址格式为十进制。
  • [linuxde@localhost ~]$ od -A x -c tmp
    000000   a   b   c   d   e   f       g  \n
    000009
    
  • 说明:设置地址格式为十六进制
  • [linuxde@localhost ~]$ od -j 2 -c tmp
    0000002   c   d   e   f       g  \n
    0000011
    
  • 说明:跳过开始的两个字节
  • [linuxde@localhost ~]$ od -N 2 -j 2 -c tmp
    0000002   c   d
    0000004
    
  • 说明:跳过开始的两个字节,并且仅输出两个字节
  • [linuxde@localhost ~]$ od -w1 -c tmp
    0000000   a
    0000001   b
    0000002   c
    0000003   d
    0000004   e
    0000005   f
    0000006   
    0000007   g
    0000010  \n
    0000011
    
  • 说明:每行仅输出1个字节
  • [linuxde@localhost ~]$ od -w2 -c tmp
    0000000   a   b
    0000002   c   d
    0000004   e   f
    0000006       g
    0000010  \n
    0000011
    
  • 说明:每行输出两个字节
  • [linuxde@localhost ~]$ od -w3 -b tmp
    0000000 141 142 143
    0000003 144 145 146
    0000006 040 147 012
    0000011
    
  • 说明:每行输出3个字节,并使用八进制单字节进行解释
下一节:paste命令用于将多个文件按照列队列进行合并。