Linux 命令(2) od 命令

2021-07-25 21:21:36 字數 2627 閱讀 7440

od(octal dump)命令用於將指定檔案內容以八進位制、十進位制、十六進製制、浮點格式或 ascii 編碼字元方式顯示,通常用於顯示或檢視檔案中不能直接顯示在終端的字元。od 命令系統預設的顯示方式是八進位制。

常見的檔案為文字檔案和二進位制檔案。od 命令主要用來檢視儲存在二進位制檔案中的值,按照指定格式解釋檔案中的資料並輸出,不管是 ieee754 格式的浮點數還是 ascii 碼,od 命令都能按照需求輸出它們的值。

大家也可以了解一下 hexdump 命令,以十六進製制輸出,但感覺 hexdump 命令沒有 od 命令強大。

od [option]... [file]...
-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 可以為數字,也可以為大寫字母。如果 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

顯示版本資訊

(1)設定第一列偏移位址以十進位制顯示。

od -ad testfile
(2)od 不顯示第一列偏移位址。

od -an testfile
(3)以十六進製制輸出,預設以四位元組為一組(一列)顯示。

od -tx testfile
(4)以十六進製制輸出,每列輸出一位元組。

od -tx1 testfile
(5)顯示ascii字元和ascii字元名稱,注意換行符顯示方式的區別。

#顯示ascii字元

[b3335@localhost]$ echo lvlv|od -a

0000000 l v l v nl

0000005

#顯示ascii字元名稱

[b3335@localhost]$ echo lvlv|od -tc

0000000 l v l v \n

0000005

(6)以十六進製制顯示的同時顯示原字元。

[b3335@localhost]$ echo lvlv|od -tcx1

0000000 l v l v \n

6c 76 6c 76 0a

0000005

(7)指定每行顯示512位元組。

od -w512 -tx1 testfile
(8)od 命令輸出時去除列與列之間的空格符。

當我們需要將檔案內容顯示為十六進製制,需要輸出連續的單個位元組,每個位元組以十六進製制顯示。這時我們可以通過od命令將檔案以單個位元組為一組,十六進製制輸出在同一行,並去除每個位元組之間的空格。目前還不知道怎麼通過指定od命令的相關選項去除列與列之間的空格,也許od命令本身並不支援。我的做法是:

(a)使用-an不輸出偏移位址;

(b)使用-v輸出時不省略重複的資料;

(c)使用-tx1以單個位元組為一組按照十六進製制輸出,-w1每列輸出乙個位元組;

(d)最後通過管道傳遞給 awk 的標準輸入,通過awk不換行輸出所有行,拼接為一行輸出。

具體命令如下:

od -an -w1 -tx1 testfile|awk '}'

[1] od manual

linux命令 od命令

參考 語法 od 選項 引數 od 選項 引數 a 此引數的效果和同時指定 ta 引數相同 a 字碼基數 選擇以何種基數計算字碼 b 此引數的效果和同時指定 toc 引數相同 c 此引數的效果和同時指定 tc 引數相同 d 此引數的效果和同時指定 tu2 引數相同 f select floats h...

Linux 檔案管理 od 命令詳解

od命令用於輸出檔案的八進位制 十六進製制或其它格式編碼的位元組,通常用於顯示或檢視檔案中不能直接顯示在終端的字元。常見的檔案為文字檔案和二進位制檔案。此命令主要用來檢視儲存在二進位制檔案中的值。比如,程式可能輸出大量的資料記錄,每個資料是乙個單精度浮點數。這些資料記錄存放在乙個檔案中,如果想檢視下...

od命令的使用

od octal dump 和 xd hexdump 命令可以以十進位制 八進位制 十六進製制和ascii碼來顯示檔案或者流,它們對於訪問或可視地檢查檔案中不能直接顯示在終端上的字元很有用。語法 od 選項 檔案 命令中各選項的含義 d 十進位制 o 八進位制 系統預設值 x 十六進製制 n 不列印...