Linuxコマンド辞典 odコマンド(ユーティリティ)

ファイル内容や標準入力された値を8/10/16進数で出力する「od」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

書式

$ od [オプション] [ファイル名・・・]

入力されたファイル/標準入力の内容を8進数でダンプする。オプションを指定することで10進数や16進数でダンプすることもできます。

オプション

-A形式
–address-radix=形式
ファイルオフセット(行頭の表示行)を指定する。d(10進数)/o(8進数/x(16進数)/n(表示無し)を併せて指定する)
-j バイト
–skip-bytes=バイト
ファイル先頭からスキップするバイト数を指定する
-N バイト
–read-bytes=バイト
入力の先頭から教えて表示するバイト数を指定する
-t タイプ
–format=タイプ
出力フォーマットを指定する。

指定可能な出力フォーマット

旧オプションフォーマット形式
a文字名を表示する-a
b8進数o1
c文字で表示する-c
d符号付き10進数u2
f浮動小数点で表示するfF
i10進整数で表示するdI
l10進長整数で表示するdL
o8進数(2バイト)o2
s10進数(2バイト)d2
x16進数(2バイト)x2

テキストファイルをodでダンプしてASCIIコードを出力

$ od -tx1c -A n ファイル名

実行結果

[rin@localhost ~]$  od -tx1c -A n test.txt 
  74  65  73  74  31  0a
   t   e   s   t   1  \n
[rin@localhost ~]$ 

文字列を標準入力から渡して16進数で出力

$ echo "test" | od -x

実行結果

[rin@localhost ~]$ echo "test" | od -x
0000000 6574 7473 000a
0000005
[rin@localhost ~]$ 
[rin@localhost ~]$  od -tx1c -A n test.txt 
  74  65  73  74  31  0a
   t   e   s   t   1  \n
[rin@localhost ~]$ 

目的の範囲を表示する

$ od コマンド -x | head -n 5

16byteスキップして16バイトを表示すれば目的のが表示する

実行結果

[rin@localhost ~]$ od /bin/ls -x | head -n 5
0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000020 0003 003e 0001 0000 5e50 0000 0000 0000
0000040 0040 0000 0000 0000 2868 0002 0000 0000
0000060 0000 0000 0040 0038 000b 0040 001f 001e
0000100 0006 0000 0004 0000 0040 0000 0000 0000
[rin@localhost ~]$ od /bin/ls -x -j 16 -N 16| head -n 5
0000020 0003 003e 0001 0000 5e50 0000 0000 0000
0000040
[rin@localhost ~]$