HEXDUMP
Section: User Commands (1)
Updated: April 2013
Index
Return to Main Contents
名前
hexdump - ファイルの内容を 16 進, 10 進, 8 進, ASCII で表示する
書式
hexdump
[options] file...
説明
hexdump
ユーティリティは、指定したファイルを
ユーザーが指定したフォーマットで表示するフィルタである。
ファイルが指定されていない場合は、標準入力を読み込んでフォーマットする。
オプション
以下の length と offset 引き数の後ろに倍数の拡張子
KiB (=1024), MiB (=1024*1024), GiB, TiB, PiB, EiB, ZiB, YiB を
付けることができる
("iB" はオプションであり、つまり "K" は "KiB" と同じ意味である)。
また、拡張子
KB (=1000), MB (=1000*1000), GB, TB, PB, EB, ZB, YB
を付けることもできる。
- -b, --one-byte-octal
-
1 バイト単位の 8 進数表示。
入力オフセットを 16 進数で表示し、
その後に、入力データ 1 バイトずつを
0 で字詰めした 3 桁の 8 進数で表現し、
それを 1 行当たり 16 個、空白で区切って表示する。
- -c, --one-byte-char
-
1 バイト単位のキャラクタ表示。
入力オフセットを 16 進数で表示し、
その後に、入力データのキャラクタを
空白で字詰めした 3 桁 (の ASCII 文字) で表現し、
それを 1 行当たり 16 個、空白で区切って表示する。
- -C, --canonical
-
標準的な 16進数 + ASCII での表示。
入力オフセットを 16 進数で表示し、
その後に、入力データのキャラクタを 2 桁の 16 進数で表現し、
それを 1 行当たり 16 個、空白で区切って表示する。
その後に、
'|'
で囲まれた中に同じ 16 バイトを
%_p
フォーマットで表示する。
- -d, --two-bytes-decimal
-
2 バイト単位の 10 進数表示。
入力オフセットを 16 進数で表示し、
その後に、入力データ 2 バイト単位を
0 で字詰めした 5 桁の符号なし 10 進数で表現し、
それを 1 行当たり 8 個、空白で区切って表示する。
- -e, --format format_string
-
データを表示するために使われるフォーマット文字列を指定する。
- -f, --format-file file
-
1 個以上のフォーマット文字列 (改行で区切る) の書かれたファイルを指定する。
空行、または空白を除いた最初の文字がハッシュマーク
(#)
である行は無視される。
- -L, --color[=when]
-
出力でのカラー設定を行う。
オプションの引き数 when は、
auto, never, always のいずれかである。
when 引き数を省略した場合、デフォルトは auto である。
カラー表示を無効化することもできる。
現在の組み込みのデフォルトは --help の出力を参照すること。
以下の「カラー表示」サブセクションと「カラー表示」セクションを
参照すること。
- -n, --length length
-
入力の
length
バイト分だけを処理する。
- -o, --two-bytes-octal
-
2 バイト単位の 8 進数表示。
入力オフセットを 16 進数で表示し、
その後に、入力 2 バイト単位を
0 で字詰めした 6 桁の 8 進数で表現し、
それを 1 行当たり 8 個、空白で区切って表示する。
- -s, --skip offset
-
入力の先頭から
offset
バイトを読み飛ばす。
- -v, --no-squeezing
-
-v
オプションを指定すると、
hexdump
に対して全ての入力データを表示させる。
-v
オプションを指定しない場合、
直前の出力行と同じ内容の行 (ただし、入力オフセットは除く) は、
何行であっても、
1 個のアスタリスクが書かれた行で置き換えられる。
- -x, --two-bytes-hex
-
2 バイト単位の 16 進数表示。
入力オフセットが 16 進数で表示し、
その後に、入力 2 バイト単位を
0 で字詰めした 4 桁の 16 進数で表現し、
それを 1 行当たり 8 個、空白で区切って表示する。
- -V, --version
-
バージョン情報を表示して、終了する。
- -h, --help
-
ヘルプを表示して、終了する。
各入力ファイルに対して、
hexdump
は、入力ファイルが指定された順番で、
-e
や
-f
オプションで指定されたフォーマット文字列に基づいて変換しながら
続けて標準出力に書き出していく。
フォーマット
フォーマット文字列は、空白で区切られた任意の個数の
フォーマット単位を含んでいる。
フォーマット単位は最大 3 個の要素、つまり、
繰り返し回数・バイト数・フォーマットを含んでいる。
繰り返し回数は、オプションとして指定される正の整数である。
デフォルトは 1 である。
各フォーマットは繰り返し回数だけ適用される。
バイト数は、オプションとして指定される正の整数である。
これが指定された場合、
1 つのフォーマットで処理されるバイト数を示す。
繰り返し回数とバイト数 (の両方、もしくはどちらか一方) が指定された場合、
どちらの数字かを区別するために、
繰り返し回数の後とバイト数の前にスラッシュを 1 個置かなければならない。
スラッシュの前後の空白は無視される。
フォーマットは必須で、ダブルクォートマーク (" ") で囲まなければならない。
このフォーマットは、fprintf 形式のフォーマット文字列
fprintf(3),
を参照) として解釈されるが、
以下のような例外がある:
- 1.
-
フィールドの幅や精度としてアスタリスク (*) を使えない。
- 2.
-
個々の変換文字
s
について、バイト数やフィールド精度が必須である
(精度が指定されていない場合に全ての文字列を表示する
fprintf(3)
のデフォルトとは異なる)。
- 3.
-
変換文字
h, l, n, p, q
がサポートされていない。
- 4.
-
C 言語の標準規格で記述されている
1 文字のエスケープシーケンスがサポートされている:
-
- NULL
-
\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 | | |
|
カラー表示
フォーマット指定の最後にカラー指定をすることで、
hexdump は対応する文字列をハイライトすることができる。
条件が存在する場合、ハイライトする前に評価される。
_L[color_unit_1,:color_unit_2,:...,:color_unit_n]
カラー指定の単位の完全な書式は以下のとおりである:
[!]COLOR:[:VALUE]:[@OFFSET_START[-END]]
- !
-
条件を否定する。
値/:文字列とオフセットの両方が指定されている場合にのみ、
否定が意味を持つ点に注意してほしい。
この場合、そのオフセットにおいて、対応する出力文字列が、
指定された値/:文字列でない場合にのみ、ハイライトされる。
- COLOR
-
シェルで使われる 8 色のうちの 1 つ。
- VALUE
-
指定した 16 進数、8 進数、文字列の値にマッチさせる。
hexdump は色指定単位のなかでは、通常の C 言語のエスケープシーケンスを
解釈しない点に注意してほしい。
- OFFSET
-
マッチするかをチェックするオフセットまたはオフセットの範囲。
OFFSET_START だけを指定すると、END オフセットは同じ値とされる点に
注意してほしい。
カウンター
変換文字列で使われるデフォルトのバイト数とサポートされるバイト数は、
以下の通りである。
- %_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 の出力フォーマットと同様である。
(-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"
MBR ブートシグネチャの例: アドレスをシアン、バイトオフセット
510 と 511 が値 0xAA55 の場合は緑、その他の場合は赤でハイライトする。
"%07.7_Ax_L[cyan]\n"
"%07.7_ax_L[cyan] " 8/2 " %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"
カラー表示
空ファイル /etc/terminal-colors.d/hexdump.disable を置くことで、
暗黙のカラー表示を無効化できる。
カラー設定の詳細は
terminal-colors.d(5)
を参照すること。
準拠
hexdump
ユーティリティは
IEEE Std 1003.2 ("POSIX.2")
に適合しているはずである。
入手方法
hexdump コマンドは、util-linux パッケージの一部であり、
Linux Kernel Archive
から入手できる。
翻訳者謝辞
この man ページの翻訳にあたり、
FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/>
による翻訳を参考にさせていただいた。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- フォーマット
-
- 変換文字列
-
- カラー表示
-
- カウンター
-
- 返り値
-
- 例
-
- カラー表示
-
- 準拠
-
- 入手方法
-
- 翻訳者謝辞
-
This document was created by
man2html,
using the manual pages.
Time: 12:49:37 GMT, August 02, 2019