tail head cat sleep
QR code linking to this page

manページ  — HEXDUMP

名称

hexdump – ASCII, 10進, 16進, 8進でのダンプ

内容

書式


hexdump [-bcCdovx] [-e format_string] [-f format_file] [-n length] [-s skip] file ...
hd [-bcdovx] [-e format_string] [-f format_file] [-n length] [-s skip] file ...

解説

hexdump ユーティリティは、ファイルが指定されていればそのファイル、 指定されていなければ標準入力を読み込み、ユーザの指定した フォーマットに従って表示するフィルタです。

オプションは以下の通りです:
-b
  1 バイト 8 進表示。 入力のオフセットを 16 進数で表示し、次に、 入力の1バイトずつを、0 詰めした 3 桁の 8 進数で、1 行あたり 16 個、 空白で区切って表示します。
-c
  1 バイト キャラクタ表示。 入力のオフセットを 16 進数で表示し、次に、 入力の1バイトずつを、空白詰めした 3 桁の ASCII 文字で、1 行あたり 16 個、 空白で区切って表示します。
-C
  標準的な hex+ASCII 表示 。 入力オフセットを 16 進数で表示し、 引続いて 16 バイトを 16 進数 2 桁で空白で区切って表示し、 引き続いて同じ 16 バイトを %_p フォーマットで ``|'' 文字で括って表示します。

コマンド hd を実行すると、このオプションで hexdump 実行したことを意味します。

-d
  2 バイト 10 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトずつを、0 詰めした 5 桁の 10 進数で、1 行あたり 8 個、 空白で区切って表示します。
-e format_string
  データの表示形式を決めるフォーマット文字列を指定します。
-f format_file
  1 つあるいはそれ以上のフォーマット文字列 (改行で区切る) の書かれたファイルを指定します。 空行、および、 空白を除いた最初の文字が ハッシュ記号 ( amp;#) である行は無視されます。
-n length
  入力のうち length バイト分だけを処理します。
-o
  2 バイト 8 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトずつを、0 詰めした 6 桁の 8 進数で、1 行あたり 8 個、 空白で区切って表示します。
-s offset
  入力の先頭から offset バイトを読み飛ばします。 デフォルトでは offset は 10 進数として解釈されます。 0x または 0X, を頭に付けると offset は 16 進数として解釈されます。 また、 0 を頭に付けると offset は 8 進数として解釈されます。 b, k, moffset の後ろにつけると、それぞれ 512, 1024, 1048576 倍と解釈されます。
-v
  -v オプションは hexdump に対してすべての入力を表示させます。 -v オプションを指定しない場合、直前の行と 内容 (オフセットは除く) が全く同じ行は何行であっても、 アスタリスク 1 個の 1 行で置き換えられます。
-x
  2 バイト 16 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトづつを、0 詰めした 4 桁の 16 進数で、1 行あたり 8 個、 空白で区切って表示します。

hexdump は、各々の入力ファイルの内容を、それらが指定された順に、 -e および -f オプションによって指示されたフォーマット文字列に従って変換しながら、 シーケンシャルに標準出力へコピーします。

フォーマット

フォーマット文字列は、任意の数のフォーマット単位を空白で区切って 並べたものです。 フォーマット単位は最大 3 個までの要素すなわち 繰り返し回数・バイト数・フォーマットによって構成されます。

繰り返し回数は正の整数で、省略時の値は 1 です。 それぞれのフォーマットは この繰り返し回数だけ適用されます。

バイト数も正の整数で、省略することもできます。 指定された場合には 繰り返し 1 回あたりに処理されるバイト数を示します。

繰り返し回数とバイト数はスラッシュ (/) で区切ります。 どちらか一方だけ 指定する時も、繰り返し回数の場合は直後、バイト数の場合は直前にスラッシュを 付け、曖昧にならないようにします。 スラッシュの前後にある空白は無視されます。

フォーマットは必須であり、ダブルクォート (" ") で囲みます。 フォーマットは fprintf 形式のフォーマット文字列 ( fprintf(3) を参照) ですが、以下の例外があります。

hexdump ユーティリティはさらに以下の変換文字をサポートします。
amp;_a[ dox]
  次に表示されるバイトのオフセット (複数の入力ファイルを通算しての値) を表示します。 文字 d, o, x を付加すると、表示をそれぞれ 10 進、8 進、16 進形式にします。
amp;_A[ dox]
  amp;_a 変換文字とほぼ同じですが、すべての入力が処理された後で一度だけ実行 されるという点が異なります。
amp;_c デフォルトの文字セット中における文字を表示します。 表示不能な文字は 0 詰めして 3 桁にした 8 進数で表示します。 ただし標準のエスケープ 表記 (上述) ができるものについてはその 2 文字で表示します。
_p デフォルトの文字セット中における文字を表示します。 表示不能な文字は " amp;." として表示します。
_u 文字セット US ASCII 中での文字を表示します。 ただし制御文字については以下に示す小文字名で表示します。 16 進で 0xff より大きな文字に ついては 16 進表記の文字列として表示します。

"amp;000 NUL001 SOH002 STX003 ETX004 EOT005 ENQ

"amp;006 ACK007 BEL008 BS009 HT00A LF00B VT

"amp;00C FF00D CR00E SO00F SI010 DLE011 DC1

"amp;012 DC2013 DC3014 DC4015 NAK016 SYN017 ETB

"amp;018 CAN019 EM01A SUB01B ESC01C FS01D GS

"amp;01E RS01F US0FF DEL

各々の変換文字について、サポートされているバイト数とデフォルトの バイト数は以下の通りです:
amp;%_c, amp;%_p, amp;%_u, amp;%c
  1 バイトのみ使用できます。
amp;%d, amp;%i, amp;%o, amp;%u, amp;%X, amp;%x デフォルトでは 4 バイトで、1 バイト・2 バイト・4 バイトが使用できます。
amp;%E, amp;%e, amp;%f, amp;%G, amp;%g デフォルトでは 8 バイトで、4 バイトと 12 バイトも使用できます。

各フォーマット文字列によって処理されるデータの量は、 各フォーマット単位が必要とするデータ量の合計であり、これは バイト数の繰り返し回数倍、あるいはバイト数が指定されていない場合には フォーマットの必要とするバイト数の繰り返し回数倍になります。

入力は ``ブロック'' ごとに処理されます。 ブロックとは、フォーマット 文字列によって指定されるデータの塊のうちで最も大きいものです。 1 ブロック分のデータを処理し切らないフォーマット文字列で、その中の 最後のフォーマット単位が何バイトかを処理し、かつ繰り返し 回数が指定されていないものは、ブロック全体が処理され切るか、 フォーマット文字列に合致するデータがブロック中になくなるまで 繰り返し回数を増やされます。

ユーザの指定または hexdump が上記のように繰り返し回数を変更した結果、 繰り返し回数が 1 より大きくなった場合、最後の繰り返しにおける 末尾の空白は出力されません。

バイト数を複数の変換文字と共に指定すると、1 つを除いた全ての変換文字が amp;_a または amp;_A である時以外、エラーになります。

入力がフォーマット文字列の一部分しか満たしていない状態で -n オプションで指定したバイト数あるいはEOFに到達した場合、 有効なデータをすべて表示できるよう、入力ブロックには適当な数の 0 が 補われます。(すなわち、データの終端にまたがっている フォーマット単位は何バイトかの 0 を表示します。)

そのようなフォーマット文字列によるさらなる出力は、等数の空白で 置き換えられます。 等数の空白とは、 もとの変換文字あるいは変換文字列とフィールド幅と精度は同じで "amp;+", "amp; amp;", "amp;#" を取り除いた s 変換文字が、NULL 文字列を指した場合に出力される数の空白です。

フォーマット文字列が指定されない場合、デフォルトの表示形式は -x オプションが指定された場合のものと同じになります。

診断

The hexdump and hd utilities exit 0 on success, and >0 if an error occurs.

使用例

入力を perusal 形式で表示する:
"%06.6_ao "  12/1 "%3_u "
"\t\t" "%_p "
"\n"

-x オプションを実装:

"%07.7_Ax\n"
"%07.7_ax  " 8/2 "%04x " "\n"

関連項目

gdb(1), od(1)

HEXDUMP (1) July 10, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

The last good thing written in C was Franz Schubert's Symphony #9.
— Erwin Dietrich