hexdump

16進数や8進数で出力する(1)

構文

hexdump [-bcCdovx] [-e FORMAT_STRING] [-f FORMAT_FILE] [-n LENGTH] [-s SKIP] FILE

オプション

-b1バイト単位の8進数3桁で出力する
-c1バイト単位のASCII文字で出力する
-C16進数とASCII文字で出力する
-d2バイト単位の10進数5桁で出力する
-o2バイト単位の8進数6桁で出力する
-vすべての入力データを表示する
-x2バイト単位の16進数4桁で出力する
-e FORMAT_STRINGデータ出力のフォーマット文字列FORMAT_STRINGを指定する
-f FORMAT_FILEフォーマット文字列の書かれたファイルFORMAT_FILEを指定する
-n LENGTH最初のLENGTHバイトだけを処理する
-s SKIP入力データの先頭からSKIPバイト分を読み飛ばす
FILE入力するファイルを指定する

説明

バイナリ・ファイルなどの入力データを、16進数や8進数をはじめ、ユーザーの指定した形式で出力する。デフォルトでは、2バイト単位の16進数4桁で出力する。

出力フォーマット

フォーマット文字列は、3つの要素「繰り返し回数」「バイト数」「フォーマット」から構成される。繰り返し回数は、1つのフォーマットが適用される回数を、バイト数は1つのフォーマットで処理されるバイト数を示す。両方を指定する場合は「8/2」のように「/」を間に入れる。フォーマットは「"」で囲まれ、基本的にはfprintf形式のフォーマット文字列として解釈される。

文字列説明
_adバイトのオフセット(アドレス)10進数表記
_aoバイトのオフセット(アドレス)8進数表記
_axバイトのオフセット(アドレス)16進数表記
_cデフォルト文字セットの文字で出力
_pデフォルト文字セットの文字で出力(「.」は表示不能な文字)
_uUS ASCII文字列で出力
\tタブ
\n改行

使用例

/bin/catファイルの内容を16進数とASCII文字列で出力する。

$ hexdump -C /bin/cat
00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 3e 00 01 00 00 00  50 18 40 00 00 00 00 00  |..>.....P.@.....|
00000020  40 00 00 00 00 00 00 00  b8 b5 00 00 00 00 00 00  |@...............|
(...)

「-x」オプションと同等の出力(2バイト16進数)をフォーマット文字列で指定し、sampleファイルの内容を出力する。

$ hexdump -e '"%07.7_ax  " 8/2 "%04x  " "\n"' sample

関連事項

od、strings