推薦:天天一個Linux命令(1):xargsapp
od(Octal Dump)命令用於將指定文件內容以八進制、十進制、十六進制、浮點格式或ASCII編碼字符方式顯示,一般用於顯示或查看文件中不能直接顯示在終端的字符。od命令系統默認的顯示方式是八進制。編碼
常見的文件爲文本文件和二進制文件。od命令主要用來查看保存在二進制文件中的值,按照指定格式解釋文件中的數據並輸出,無論是IEEE754格式的浮點數仍是ASCII碼,od命令都能按照需求輸出它們的值。spa
你們也能夠了解一下hexdump命令,以十六進制輸出,但感受hexdump命令沒有od命令強大。.net
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 #顯示版本信息
一、設置第一列偏移地址以十進制顯示。code
od -Ad testfile #偏移地址顯示基數有:d for decimal, o for octal, x for hexadecimal or n for none。
二、od 不顯示第一列偏移地址。orm
od -An testfile
三、以十六進制輸出,默認以四字節爲一組(一列)顯示。blog
od -tx testfile
四、以十六進制輸出,每列輸出一字節。圖片
od -tx1 testfile
五、顯示ASCII字符和ASCII字符名稱,注意換行符顯示方式的區別。ip
#顯示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
六、以十六進制顯示的同時顯示原字符。ci
[b3335@localhost]$ echo lvlv|od -tcx1 0000000 l v l v n 6c 76 6c 76 0a 0000005
七、指定每行顯示512字節。
od -w512 -tx1 testfile
八、od 命令輸出時去除列與列之間的空格符。
當咱們須要將文件內容顯示爲十六進制,須要輸出連續的單個字節,每一個字節以十六進制顯示。這時咱們能夠經過od命令將文件以單個字節爲一組,十六進制輸出在同一行,並去除每一個字節之間的空格。目前還不知道怎麼經過指定od命令的相關選項去除列與列之間的空格,也許od命令自己並不支持。個人作法是:
具體命令以下:
od -An -w1 -tx1 testfile|awk '{for(i=1;i<=NF;++i){printf "%s",$i}}'
來源:https://dablelv.blog.csdn.net...