スポンサーリンク

HEXDUMP(1) FreeBSD 一般コマンドマニュアル HEXDUMP(1)

名称

hexdump, hd − 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 つあるいはそれ以上のフォーマット文字列 (改行で区切る) の書 かれたファイルを指定します。空行、および、空白を除いた最初の 文字がハッシュ記号 (#) である行は無視されます。

−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) を参照) ですが、以下の例外 があります。

フィールドの幅あるいは精度としてアスタリスク (*) を使用すること はできません。

‘‘s’’ 変換文字にはバイト数または精度を指定しなければなりません (精度が指定されなかった場合は文字列全体を表示するという fprintf(3) のデフォルトとは異なります)。

変換文字 ‘‘h’’, ‘‘l’’, ‘‘n’’, ‘‘p’’ , ‘‘q’’ はサポートされてい ません。

C の標準規格の中で記述されている以下の 1 文字エスケープシーケン スをサポートしています。

NUL \0
<alert character> \a
<backspace> \b
<form-feed> \f
<newline> \n
<carriage return> \r
<tab> \t
<vertical tab> \v

hexdump ユーティリティはさらに以下の変換文字をサポートします。

       _a[dox]

次に表示されるバイトのオフセット (複数の入力ファイルを通算し ての値) を表示します。文字 d, o, x を付加すると、表示をそれぞ れ 10 進、8 進、16 進形式にします。

_A[dox]
_a
変換文字とほぼ同じですが、すべての入力が処理された後で一度 だけ実行されるという点が異なります。

_c
デフォルトの文字セット中における文字を表示します。表示不能な 文字は 0 詰めして 3 桁にした 8 進数で表示します。ただし標準の エスケープ表記 (上述) ができるものについてはその 2 文字で表示 します。

_p
デフォルトの文字セット中における文字を表示します。表示不能な 文字は ‘‘.’’ として表示します。

_u
文字セット US ASCII 中での文字を表示します。ただし制御文字に ついては以下に示す小文字名で表示します。 16 進で 0xff より大 きな文字については 16 進表記の文字列として表示します。

000 NUL 001 SOH 002 STX 003 ETX 004 EOT 005 ENQ
006 ACK 007 BEL 008 BS 009 HT 00A LF 00B VT
00C FF 00D CR 00E SO 00F SI 010 DLE 011 DC1
012 DC2 013 DC3 014 DC4 015 NAK 016 SYN 017 ETB
018 CAN 019 EM 01A SUB 01B ESC 01C FS 01D GS
01E RS 01F US 0FF DEL

各々の変換文字について、サポートされているバイト数とデフォルトのバイト数 は以下の通りです:

             %_c, %_p, %_u, %c

1 バイトのみ使用できます。

%d, %i, %o, %u, %X, %x
デフォルトでは 4 バイトで、1 バイト・2 バイ ト・4 バイトが使用できます。

%E, %e, %f, %G, %g
デフォルトでは 8 バイトで、4 バイトと 12 バ イトも使用できます。

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

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

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

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

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

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

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

診断

ユーティリティ hexdump および hd は、成功すると 0 で、エラーがあった場合 は >0 で終了します。

使用例

入力を 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)

FreeBSD 10.0 July 10, 2004 FreeBSD 10.0

スポンサーリンク