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
m
を
offset
の後ろにつけると、それぞれ
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)
を参照) ですが、以下の例外があります。
-
フィールドの幅あるいは精度としてアスタリスク (*) を使用することはできません。
-
``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
-
ユーティリティはさらに以下の変換文字をサポートします。
- _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
- 名称
-
- 書式
-
- 解説
-
- フォーマット
-
- 診断
-
- 使用例
-
- 関連項目
-
Time: 07:06:09 GMT, January 12, 2009