1.功能簡介
od(Octal Dump)命令用于將指定文件內(nèi)容以八進(jìn)制、十進(jìn)制、十六進(jìn)制、浮點(diǎn)格式或 ASCII 編碼字符方式顯示,通常用于顯示或查看文件中不能直接顯示在終端的字符。od 命令系統(tǒng)默認(rèn)的顯示方式是八進(jìn)制。
常見的文件為文本文件和二進(jìn)制文件。od 命令主要用來查看保存在二進(jìn)制文件中的值,按照指定格式解釋文件中的數(shù)據(jù)并輸出,不管是 IEEE754 格式的浮點(diǎn)數(shù)還是 ASCII 碼,od 命令都能按照需求輸出它們的值。
大家也可以了解一下 hexdump 命令,以十六進(jìn)制輸出,但感覺 hexdump 命令沒有 od 命令強(qiáng)大。
2.命令格式
od [OPTION] [FILE]
3.選項(xiàng)說明
-A RADIX
--address-radix=RADIX
選擇以何種基數(shù)表示地址偏移
-j BYTES
--skip-bytes=BYTES
跳過指定數(shù)目的字節(jié)
-N BYTES
--read-bytes=BYTES
輸出指定字節(jié)數(shù)
-S [BYTES]
--strings[=BYTES]
輸出長度不小于指定字節(jié)數(shù)的字符串,BYTES 缺省為 3
-v
--output-duplicates
輸出時(shí)不省略重復(fù)的數(shù)據(jù)
-w [BYTES]
--width[=BYTES]
設(shè)置每行顯示的字節(jié)數(shù),BYTES 缺省為 32 字節(jié)
-t TYPE
--format=TYPE
指定輸出格式,格式包括 a、c、d、f、o、u 和 x,各含義如下:
a:具名字符;比如換行符顯示為 nl
c:可打印字符或反斜杠表示的轉(zhuǎn)義字符;比如換行符顯示為
d[SIZE]:SIZE 字節(jié)組成一個(gè)有符號(hào)十進(jìn)制整數(shù)。SIZE 缺省為 sizeof(int)
f[SIZE]:SIZE 字節(jié)組成一個(gè)浮點(diǎn)數(shù)。SIZE 缺省為 sizeof(double)
o[SIZE]:SIZE 字節(jié)組成一個(gè)八進(jìn)制整數(shù)。SIZE 缺省為 sizeof(int)
u[SIZE]:SIZE 字節(jié)組成一個(gè)無符號(hào)十進(jìn)制整數(shù)。SIZE 缺省為 sizeof(int)
x[SIZE]:SIZE 字節(jié)組成一個(gè)十六進(jìn)制整數(shù)。SIZE 缺省為 sizeof(int)
SIZE 可以為數(shù)字,也可以為大寫字母。如果 TYPE 是 [doux] 中的一個(gè),那么 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
顯示版本信息
4.常用示例
(1)設(shè)置第一列偏移地址以十進(jìn)制顯示。
od -Ad testfile
偏移地址顯示基數(shù)有:d for decimal, o for octal, x for hexadecimal or n for none。
(2)od 不顯示第一列偏移地址。
od -An testfile
(3)以十六進(jìn)制輸出,默認(rèn)以四字節(jié)為一組(一列)顯示。
od -tx testfile
(4)以十六進(jìn)制輸出,每列輸出一字節(jié)。
od -tx1 testfile
(5)顯示ASCII字符和ASCII字符名稱,注意換行符顯示方式的區(qū)別。
#顯示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
0000005
(6)以十六進(jìn)制顯示的同時(shí)顯示原字符。
[b3335@localhost]$ echo lvlv|od -tcx1
0000000 l v l v
6c 76 6c 76 0a
0000005
(7)指定每行顯示512字節(jié)。
od -w512 -tx1 testfile
(8)od 命令輸出時(shí)去除列與列之間的空格符。
當(dāng)我們需要將文件內(nèi)容顯示為十六進(jìn)制,需要輸出連續(xù)的單個(gè)字節(jié),每個(gè)字節(jié)以十六進(jìn)制顯示。這時(shí)我們可以通過od命令將文件以單個(gè)字節(jié)為一組,十六進(jìn)制輸出在同一行,并去除每個(gè)字節(jié)之間的空格。目前還不知道怎么通過指定od命令的相關(guān)選項(xiàng)去除列與列之間的空格,也許od命令本身并不支持。我的做法是:
(a)使用-An不輸出偏移地址;
(b)使用-v輸出時(shí)不省略重復(fù)的數(shù)據(jù);
(c)使用-tx1以單個(gè)字節(jié)為一組按照十六進(jìn)制輸出,-w1每列輸出一個(gè)字節(jié);
(d)最后通過管道傳遞給 awk 的標(biāo)準(zhǔn)輸入,通過awk不換行輸出所有行,拼接為一行輸出。
具體命令如下:
od -An -w1 -tx1 testfile|awk ‘{for(i=1;i《=NF;++i){printf “%s”,$i}}’
點(diǎn)贊和在看就是最大的支持
原文標(biāo)題:每天一個(gè) Linux 命令(133):od 命令
文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
Linux
+關(guān)注
關(guān)注
87文章
11177瀏覽量
208489 -
ASCII
+關(guān)注
關(guān)注
5文章
171瀏覽量
34997
原文標(biāo)題:每天一個(gè) Linux 命令(133):od 命令
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論