HEXDUMP

Section: User Commands (1)
索引 jman

BSD mandoc
 

索引

名称

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

索引

書式

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

索引

解説

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

オプションは以下の通りです:

-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 を実行すると、このオプションで 実行したことを意味します。

-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 オプションは に対してすべての入力を表示させます。 -v オプションを指定しない場合、直前の行と 内容 (オフセットは除く) が全く同じ行は何行であっても、 アスタリスク 1 個の 1 行で置き換えられます。
-x
2 バイト 16 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトづつを、0 詰めした 4 桁の 16 進数で、1 行あたり 8 個、 空白で区切って表示します。

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

フォーマット

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

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

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

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

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


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

_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 オプションが指定された場合のものと同じになります。  

索引

診断

Ex -std hexdump hd  

索引

使用例

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


 

索引

Index

名称
書式
解説
フォーマット
診断
使用例
関連項目

jman



Time: 07:06:09 GMT, January 12, 2009