linux下od命令的使用


名稱:od
作用:格式化輸出文件中的數據
提要:
         od [OPTION]... [FILE]...
         od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]
     od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]
說明:
常見的文件為文本文件和二進制文件。此命令主要用來查看保存在二進制文件中的值。比如,程序可能輸出大量的數據記錄,每個數據是一個單精度浮點數。這些數據記錄存放在一個文件中,如果想查看下這個數據,這時候od命令就派上用場了。在我看來,od命令主要用來格式化輸出文件數據,即對文件中的數據進行無二義性的解釋。不管是IEEE754格式的浮點數還是ASCII碼,od命令都能按照需求輸出他們的值。
如果沒有指定文件名,或者文件名為“-”,則從標准輸入讀入數據
 
-A:指定地址基數,od命令的輸出最左側的1列為偏移量。默認的偏移量使用8進制,可以使用-A進行修改。
格式為:-A 參數.可以使用的參數有:d:十進制;o:八進制;x:十六進制;n不顯示偏移量這一列。
 
-j:文件打開時,跳過的字節數量。
格式為:-j BYTES.BYTES是一個數值,用0開頭表示8進制,用0x開頭表示16進制,用b作為后綴表示1個字節,用k作為后綴表示1024個字節,用m作為后綴表示1048576個字節。
 
-N:用於限制輸出的字節的數量
格式為:-N BYTES.BYTES的格式同上。
 
-S:用於指定輸出的串占多少個圖形字符的位置
格式為:-S BYTES.
 
-t:選擇輸出格式。
格式為:-t [acdfoux][size].
a:每個ASCII碼對應的名字。
b:用八進制字節表示的字符對應的ASCII碼值
d:有符號數值,SIZE個字節
f:浮點數,SIZE個字節
o:八進制數,SIZE個字節
u:無符號數值,SIZE個字節
x:十六進制數,size個字節
注意:這里的SIZE是一個數值或者是一個字母。字母的范圍為:[CSILFD]。對於非f類型的,一般選擇CSIL.其中C表示sizeof(char),S表示sizeof(short),I表示sizeof(int),L表示sizeof(long).如果類型為f,sizeof可以是F或者是D,分別表示sizeof(float)或者sizeof(double).
可以使用傳統的格式:分別為:
-a:等價於 -t a.表示ASCII碼的名字
-b:等價於-t o1,選擇單字節,並且按照3個數值位的八進制數進行解釋
-c:等價於-t c,選擇ASCII碼字符或者是轉義字符
-d:等價於-t u2:選擇無符號2字節單位
-f:等價於-t fF,選擇單精度浮點數
-i:等價於-t dI,選擇十進制整型
-l:等價於-t dL,選擇十進制長整型
-o:等價於-t o2,選擇兩個字節的單元並按照八進制進行解釋
-s:等價於-t d2,選擇兩字節單元並按照十進制解釋
-x:等價於-t x2,選擇兩個字節單元,並作十六進制解釋
 
-v:不用*代替重復的輸出
 
-w:用於設置每行的寬度,即每行上輸出的字節數
格式為:-w BYTES
 
舉例說明如下:
說明:先准備一個tmp文件
[lichao@sg01 ~]$ echo abcdef g > tmp
[lichao@sg01 ~]$ cat tmp
abcdef g


說明:使用單字節八進制解釋進行輸出,注意左側的默認地址格式為八字節 
[lichao@sg01 ~]$ od -b tmp
0000000 141 142 143 144 145 146 040 147 012
0000011


說明:使用ASCII碼進行輸出,注意其中包括轉義字符 
[lichao@sg01 ~]$ od -c tmp
0000000   a   b   c   d   e   f       g  \n
0000011


說明:使用單字節十進制進行解釋 
[lichao@sg01 ~]$ od -t d1 tmp
0000000   97   98   99  100  101  102   32  103   10
0000011


說明:設置地址格式為十進制 
[lichao@sg01 ~]$ od -A d -c tmp
0000000   a   b   c   d   e   f       g  \n
0000009


說明:設置地址格式為十六進制
[lichao@sg01 ~]$ od -A x -c tmp
000000   a   b   c   d   e   f       g  \n
000009


說明:跳過開始的兩個字節 
[lichao@sg01 ~]$ od -j 2 -c tmp
0000002   c   d   e   f       g  \n
0000011


說明:跳過開始的兩個字節,並且僅輸出兩個字節
[lichao@sg01 ~]$ od -N 2 -j 2 -c tmp
0000002   c   d
0000004


說明:每行僅輸出1個字節
[lichao@sg01 ~]$ od -w1 -c tmp
0000000   a
0000001   b
0000002   c
0000003   d
0000004   e
0000005   f
0000006   
0000007   g
0000010  \n
0000011


說明:每行輸出兩個字節
[lichao@sg01 ~]$ od -w2 -c tmp
0000000   a   b
0000002   c   d
0000004   e   f
0000006       g
0000010  \n
0000011


說明:每行輸出3個字節,並使用八進制單字節進行解釋
[lichao@sg01 ~]$ od -w3 -b tmp
0000000 141 142 143
0000003 144 145 146
0000006 040 147 012
0000011

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com