[Linux] ファイルの内容をダンプするodコマンドの使い方

odコマンドはファイルの内容を8進数、10進数、16進数などでダンプします。

od – dump files in octal and other formats

odコマンドはGNU Coreutilsに含まれています。ここでは、odコマンドの基本的な使い方を紹介します。
※以降の実行例は、Ubuntu17.10で確認しています。

1. odコマンドの基本的な使い方

od [option]... [file]...

fileの指定が無い場合は、標準入力からデータを取得します。

2. 2バイト単位で8進数ダンプをする

odコマンドのデフォル動作は、2バイト単位で8進数ダンプを行います。この動作は、’-t o2‘オプションと同じになります。

$ echo abcd | od
0000000 061141 062143 000012
0000005
$ echo abcd | od -t o2
0000000 061141 062143 000012
0000005

各列の一番左の値は、各列で表示しているデータのオフセット値になります。
このダンプ例は、バイトオーダーがリトルエンディアンとなっています。したがって、ダンプの出力結果は逆順になっていることに注意してください。
 
ビッグエンディアンで出力する場合は、’--endian‘オプションを利用します。

$ echo abcd | od --endian=big
0000000 060542 061544 005000
0000005

3. 1バイト単位で8進数ダンプをする

'-o'オプションもしくは'-t o1'オプションで、1バイト単位で8進数ダンプを行うことができます。

$ echo abcd | od -b
0000000 141 142 143 144 012
0000005
$ echo abcd | od -t o1
0000000 141 142 143 144 012
0000005

4. オフセット値を表示しない

'-A'オプションに'n'を指定することで、オフセット値の表示を消すことができます。

$ echo abcd | od -A n
 061141 062143 000012

5. 2バイト単位で16進数ダンプをする

2バイト単位で16進数ダンプをするには'-x'オプションもしくは'-t x2'オプションを利用します。

$ echo abcd | od -x
0000000 6261 6463 000a
0000005
$ echo abcd | od -t x2
0000000 6261 6463 000a
0000005

6. 1バイト単位で16進数ダンプをする

1バイト単位で16進数ダンプをするには'-t x1'オプションを利用します。

$ echo abcd | od -t x1
0000000 61 62 63 64 0a
0000005

7. オフセットの単位を16進数に変更する

ダンプしたときに一番左に表示されるオフセット値は、デフォルトでは8進数になっています。オフセットの単位を16進数に変更するには'-A x'オプションを利用します。

$ echo abcfefghi | od -x
0000000 6261 6663 6665 6867 0a69
0000012
$ echo abcfefghi | od -A x -x
000000 6261 6663 6665 6867 0a69
00000a

 
以上、ファイルの内容をダンプするodコマンドの紹介でした。