HEXDUMP
Section: User Commands (1)
Index
JM Home Page
roff page
BSD mandoc
名前
hexdump
- ASCII, 10 進, 16 進, 8 進でダンプする
書式
[-bcCdovx
]
-words
[-e format_string
]
-words
[-f format_file
]
-words
[-n length
]
-words
[-s skip
]
file ...
説明
hexdump ユーティリティは、指定したファイルを
ユーザーが指定したフォーマットで表示するフィルタである。
ファイルが指定されていない場合は、標準入力を読み込んでフォーマットする。
オプションとしては以下のものがある:
- -b
-
1 バイト単位の 8 進数表示。
入力オフセットを 16 進数で表示し、
その後に、入力データ 1 バイトずつを
0 で字詰めした 3 桁の 8 進数で表現し、
それを 1 行当たり 16 個、空白で区切って表示する。
- -c
-
1 バイト単位のキャラクタ表示。
入力オフセットを 16 進数で表示し、
その後に、入力データのキャラクタを
空白で字詰めした 3 桁 (の ASCII 文字) で表現し、
それを 1 行当たり 16 個、空白で区切って表示する。
- -C
-
標準的な 16進数 + ASCII での表示。
入力オフセットを 16 進数で表示し、
その後に、入力データのキャラクタを 2 桁の 16 進数で表現し、
それを 1 行当たり 16 個、空白で区切って表示する。
その後に、``|'' で囲まれた中に同じ 16 バイトを
%_p フォーマットで表示する。
- -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 進数として解釈される。
offset
の後ろに
b
k
m
を付けた場合、それぞれ
512
1024
1048576
倍であると解釈されるようになる。
- -v
-
-v
オプションを指定すると、hexdump に対して全ての入力データを表示させる。
-v
オプションを指定しない場合、
直前の出力行と同じ内容の行 (ただし、入力オフセットは除く) は、
何行であっても、
1 個のアスタリスクが書かれた行で置き換えられる。
- -x
-
2 バイト単位の 16 進数表示。
入力オフセットが 16 進数で表示し、
その後に、入力 2 バイト単位を
0 で字詰めした 4 桁の 16 進数で表現し、
それを 1 行当たり 8 個、空白で区切って表示する。
各入力ファイルに対して、
は、入力ファイルが指定された順番で、
-e
や
-f
オプションで指定されたフォーマット文字列に基づいて変換しながら
続けて標準出力に書き出していく。
フォーマット
フォーマット文字列は、空白で区切られた任意の個数の
フォーマット単位を含んでいる。
フォーマット単位は最大 3 個の要素、つまり、
繰り返し回数・バイト数・フォーマットを含んでいる。
繰り返し回数は、オプションとして指定される正の整数である。
デフォルトは 1 である。
各フォーマットは繰り返し回数だけ適用される。
バイト数は、オプションとして指定される正の整数である。
これが指定された場合、
1 つのフォーマットで処理されるバイト数を示す。
繰り返し回数とバイト数 (の両方、もしくはどちらか一方) が指定された場合、
どちらの数字かを区別するために、
繰り返し回数の後とバイト数の前にスラッシュを 1 個置かなければならない。
スラッシュの前後の空白は無視される。
フォーマットは必須で、ダブルクォートマーク (" ") で囲まなければならない。
このフォーマットは、fprintf 形式のフォーマット文字列
( fprintf(3)
を参照) として解釈されるが、
以下のような例外がある:
-
フィールドの幅や精度としてアスタリスク (*) を使えない。
-
個々の変換文字 ``s'' について、バイト数やフィールド精度が必須である
(精度が指定されていない場合に全ての文字列を表示する
fprintf(3)
のデフォルトとは異なる)。
-
変換文字 ``h'', ``l'', ``n'', ``p'', ``q'' がサポートされていない。
-
C 言語の標準規格で記述されている
1 文字のエスケープシーケンスがサポートされている:
- NUL \0
-
- <アラート文字> \a
-
- <バックスペース> \b
-
- <フォームフィード> \f
-
- <改行> \n
-
- <復帰>\r
-
- <タブ>\t
-
- <垂直タブ>\v
-
hexdump は、他にも以下の変換文字列をサポートする:
- _a [dox
]
-
次に表示されるバイトのオフセット
(複数の入力ファイルで通算した値) を表示する。
文字
d
o
x
を後ろに付加すると、表示の際の基数がそれぞれ 10, 8, 16 進数に指定される。
- _A [dox
]
-
変換文字列
_a
とほぼ同じ。
ただし、この変換は全ての入力データが処理された後で 1 回だけ実行される。
- _c
-
デフォルト文字セットの文字で出力する。
表示不能な文字は、0 で字詰めした 3 桁の 8 進数で表示される。
ただし、標準エスケープ表記で表現される文字 (上記を参照) は、
その 2 文字の文字列で表示される。
- _p
-
デフォルト文字セットの文字で出力する。
表示不能な文字は、1 個の
``.
''
として表示される。
- _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 バイトがサポートされている。
各フォーマット文字列によって処理されるデータの量は、
各フォーマット単位で必要とされるデータの合計である。
この合計は (繰り返し回数)×(バイト数) である。
また、バイト数が指定されていない場合は、
(繰り返し回数)×(フォーマットが必要としているバイト数) である。
入力は「ブロック」ごとに操作される。
ブロックは、フォーマット文字列で指定される
データの塊のうちで最大のもの、と定義される。
入力ブロックのデータより少ないバイト数しか処理していないフォーマット文字列で、
その中の最後のフォーマット単位で数バイトを処理し、
かつ繰り返し回数が指定されていない場合、
入力ブロック全体が処理されるか、
フォーマット文字列に合致するデータがブロックになくなるまで、
繰り返し回数を増加させる。
ユーザーの指定、
または hexdump が上で説明したように繰り返し回数を変更した結果、
繰り返し回数が 2 回以上になった場合、
最後の繰り返しにおける末尾の空白は出力されない。
バイト数を複数の変換文字と共に指定すると、
1 つを除いた全ての変換文字が
_a
または
_A
である場合以外は、エラーになる。
-n
オプションで指定したバイト数分、またはファイル終端に達したときに、
入力データがフォーマット文字列の一部分にしか満たさない場合、
有効なデータを全て表示するために、入力ブロックには適切な数の 0 が補われる
(すなわち、データの終端にまたがっているフォーマット単位は、
何個かの 0 のバイトを表示する)。
このようなフォーマット文字列によるさらなる出力は、
等数の空白で置き換えられる。
等数の空白とは、元々の変換文字とフィールド幅と精度は同じで、
変換フラグ文字
``+
''
`` ''
``#
''
を取り除いた
s
変換文字が NULL 文字列を参照した場合に出力される数の空白である。
フォーマット文字列が指定されない場合、
デフォルトの表示は
-x
オプションを指定した場合と同じである。
は成功すると 0 を返して終了する。
エラーが起こった場合は、1 以上を返して終了する。
例
入力を perusal (詳しく閲覧する) フォーマットで表示する:
"%06.6_ao " 12/1 "%3_u "
"\t\t" "%_p "
"\n"
-x オプションを実装する:
"%07.7_Ax\n"
"%07.7_ax " 8/2 "%04x " "\n"
準拠
ユーティリティは
St -p1003.2
に適合しているはずである。
翻訳者謝辞
この man ページの翻訳にあたり、
FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/>
による翻訳を参考にさせていただいた。
Index
- 名前
-
- 書式
-
- 説明
-
- フォーマット
-
- 例
-
- 準拠
-
- 翻訳者謝辞
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:59 GMT, November 19, 2007