od ファイルの中身を8進数や16進数などで表示する
od [オプション] [ファイル...]試してみる
od hello.txt何も指定しないと、2バイトずつ8進数で表示します。
od -c hello.txt1バイトずつ文字として表示します。タブは \t、改行は \n と見えます。
od -t x1 hello.txt1バイトずつ16進数で表示します。
od -A x -t x1z abc.txt位置も16進数にし、右側に文字も並べます。
od -A n -t x1 abc.txt-A n で、左端の位置の表示を消します。
od -N 3 -c hello.txt-N で、先頭の3バイトだけ読みます。
主なオプション
-c | 1バイトずつ、文字またはエスケープで表示する |
|---|---|
-t 形式 | 表示の形式。x1 は16進数1バイト、d2 は10進数2バイトなど |
-A 基数 | 左端の位置の表示形式。o 8進数、d 10進数、x 16進数、n なし |
-N バイト数 | 読み込むバイト数を制限する |
-j バイト数 | 先頭から指定したバイト数を飛ばす |
解説
基本
od(octal dump)は、ファイルの中身をバイト単位で、数値として表示します。テキストエディタでは見えない文字を調べるときに使います。
左端の数字
左端の数字は、そのファイルの先頭から数えた位置です。既定では8進数です。-A x で16進数、-A d で10進数、-A n で非表示にできます。
表示の形式
-c は、文字として読める形で見せます。タブは \t、改行は \n で、ほかの制御文字は8進数で表示されます。-t x1 は16進数1バイト、-t d1 は10進数1バイトのように、型と大きさで指定します。-t は何回でも書けます。
使いどころ
行末が CR+LF になっていないか、全角スペースや BOM が混ざっていないかなど、見た目では判断できない問題の調査に向いています。同じ用途で、16進ダンプの hexdump や xxd もあります。
同じ内容の行
同じ内容の行が続くと、* 1つに省略されます。省略させたくないときは -v を付けます。