HEXDUMP(1) | General Commands Manual | HEXDUMP(1) |
hexdump
— ASCII,
10 進, 16 進, 8
進でダンプする
hexdump
[-bcCdovx
]
[-e
format_string]
[-f
format_file]
[-n
length]
[-s
skip]
file ...
hexdump ユーティリティは、指定したファイルを ユーザーが指定したフォーマットで表示するフィルタである。 ファイルが指定されていない場合は、標準入力を読み込んでフォーマットする。
オプションとしては以下のものがある:
-b
-c
-C
-d
-e
format_string-f
format_file#
)
である行は無視される。-n
length-o
-s
offset0x
または 0X
を付けた場合、
offset は 16
進数として解釈される。
先頭に 0
を付けた場合、
offset は 8
進数として解釈される。
offset の後ろに
b
, k
,
m
を付けた場合、それぞれ
512
, 1024
,
1048576
倍であると解釈されるようになる。-v
-v
オプションを指定すると、hexdump
に対して全ての入力データを表示させる。
-v
オプションを指定しない場合、
直前の出力行と同じ内容の行
(ただし、入力オフセットは除く)
は、
何行であっても、 1
個のアスタリスクが書かれた行で置き換えられる。-x
各入力ファイルに対して、
hexdump
は、入力ファイルが指定された順番で、
-e
や -f
オプションで指定されたフォーマット文字列に基づいて変換しながら
続けて標準出力に書き出していく。
フォーマット文字列は、空白で区切られた任意の個数の フォーマット単位を含んでいる。 フォーマット単位は最大 3 個の要素、つまり、 繰り返し回数・バイト数・フォーマットを含んでいる。
繰り返し回数は、オプションとして指定される正の整数である。 デフォルトは 1 である。 各フォーマットは繰り返し回数だけ適用される。
バイト数は、オプションとして指定される正の整数である。 これが指定された場合、 1 つのフォーマットで処理されるバイト数を示す。
繰り返し回数とバイト数 (の両方、もしくはどちらか一方) が指定された場合、 どちらの数字かを区別するために、 繰り返し回数の後とバイト数の前にスラッシュを 1 個置かなければならない。 スラッシュの前後の空白は無視される。
フォーマットは必須で、ダブルクォートマーク (" ") で囲まなければならない。 このフォーマットは、fprintf 形式のフォーマット文字列 (fprintf(3) を参照) として解釈されるが、 以下のような例外がある:
NUL | \0 |
<アラート文字> | \a |
<バックスペース> | \b |
<フォームフィード> | \f |
<改行> | \n |
<復帰> | \r |
<タブ> | \t |
<垂直タブ> | \v |
hexdump は、他にも以下の変換文字列をサポートする:
_a
[dox
]d
, o
,
x
を後ろに付加すると、表示の際の基数がそれぞれ
10, 8, 16
進数に指定される。_A
[dox
]_a
とほぼ同じ。
ただし、この変換は全ての入力データが処理された後で
1
回だけ実行される。_c
_p
.
”
として表示される。_u
000 nul 001\soh 0022stx 003 etx 004 eot 005enq |
006 ack 007\bel 0088bs 009 ht 00A lf 00Bvt |
00C ff 00D\cr 00E 00F si 010 dle 011dc1 |
012 dc2 013\dc3 0144dc4 0151nak 016 syn 017etb |
018 can 019\em 01Ac 01C fs 01Dgs |
01E rs 01F\us 0FFel |
変換文字列で使われるデフォルトのバイト数とサポートされるバイト数は、 以下の通りである。
各フォーマット文字列によって処理されるデータの量は、 各フォーマット単位で必要とされるデータの合計である。 この合計は (繰り返し回数)×(バイト数) である。 また、バイト数が指定されていない場合は、 (繰り返し回数)×(フォーマットが必要としているバイト数) である。
入力は「ブロック」ごとに操作される。 ブロックは、フォーマット文字列で指定される データの塊のうちで最大のもの、と定義される。 入力ブロックのデータより少ないバイト数しか処理していないフォーマット文字列で、 その中の最後のフォーマット単位で数バイトを処理し、 かつ繰り返し回数が指定されていない場合、 入力ブロック全体が処理されるか、 フォーマット文字列に合致するデータがブロックになくなるまで、 繰り返し回数を増加させる。
ユーザーの指定、 または hexdump が上で説明したように繰り返し回数を変更した結果、 繰り返し回数が 2 回以上になった場合、 最後の繰り返しにおける末尾の空白は出力されない。
バイト数を複数の変換文字と共に指定すると、
1
つを除いた全ての変換文字が
_a
または
_A
である場合以外は、エラーになる。
-n
オプションで指定したバイト数分、またはファイル終端に達したときに、
入力データがフォーマット文字列の一部分にしか満たさない場合、
有効なデータを全て表示するために、入力ブロックには適切な数の
0 が補われる
(すなわち、データの終端にまたがっているフォーマット単位は、
何個かの 0
のバイトを表示する)。
このようなフォーマット文字列によるさらなる出力は、
等数の空白で置き換えられる。
等数の空白とは、元々の変換文字とフィールド幅と精度は同じで、
変換フラグ文字
“+
”, “ ”,
“#
”
を取り除いた s
変換文字が NULL
文字列を参照した場合に出力される数の空白である。
フォーマット文字列が指定されない場合、
デフォルトの表示は
-x
オプションを指定した場合と同じである。
hexdump
は成功すると 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"
hexdump
ユーティリティは
IEEE Std 1003.2 (“POSIX.2”)
に適合しているはずである。
この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/> による翻訳を参考にさせていただいた。
April 18, 1994 | Debian |