名前
xxd - 16 進ダンプを作成したり、元に戻したり。書式
xxd -h[elp]説明
ファイルや標準入力から 16 進ダンプを作成します。 16 進ダンプから元のバイナリに戻すこともできます。 uuencode(1) や uudecode(1) のように、バイナリデータを、メールに貼り付け可能な ASCII 形式に変換できたり、標準出力に出力することもできます。 さらに、バイナリファイルにパッチを当てるという使い方もできます。オプション
infile を指定しなかった場合は、標準入力が読み込まれます。 infile に `-' を指定した場合も、標準入力から読み込まれます。 outfile を指定しなかった (または `-' を指定した) 場合は、標準出力に出力されます。 引数の解釈処理は適当なので注意してください。 パラメータを取らない引数は最初の一文字だけチェックされます。 引数の文字とパラメータの間のスペースは省略可能です。 パラメータは 10 進数、16 進数、8 進数で指定できます。 -c8 、 -c 8 、 -c 010 、 -cols 8 はすべて同じ意味です。- -a | -autoskip
- オートスキップ: 連続した nul 行を一つの '*' で置き換える。
- -b | -bits
- ビット (2進数) ダンプ。 1 オクテットが "1" と "0" の 8 文字で出力されます。 各行の行頭には 16 進数の行番号が表示されます。 行末には ascii (または ebcdic) で表した場合の文字が表示されます。 このモードでは -r、-p、-i は機能しません。
- -e
- リトルエンディアンの 16 進ダンプに切り替える。 このオプションは、バイトのグループをリトルエンディアンのバイト順のワードとして扱います。 標準のグルーピングは 4 バイトですが、 -g を使うことで変更可能です。 このオプションは 16 進ダンプのみに適用され、ASCII (あるいは EBCDIC) 表示は変更されません。 このモードでは -r、-p、-i は機能しません。
- -c cols | -cols cols
- 一行 <cols> オクテットで出力する。標準設定は 16 (-i: 12, -ps: 30, -b: 6)。最大 256。 -ps には最大値がありません。 -ps 付きの場合、0 を指定すると単一の長い行で出力されます。
- -C | -capitalize
- -i を使用した際に、C インクルードファイル形式の変数名を大文字にする。
- -E | -EBCDIC
- 右端に出力される文字のエンコーディングを ASCII から EBCDIC に変更する。 16 進ダンプの出力形式は変更されません。 -r、-p、-i が同時に指定された場合は何の効果もありません。
- -g bytes | -groupsize bytes
- 出力を <bytes> バイト (2 文字の 16 進数、または 8 文字の 2 進数) ごとにスペースで区切ります。 区切らずに出力するには -g 0 を指定してください。 <Bytes> の標準設定は 2 で、リトルエンディアンモードの場合は 4 、 2 進ダンプの場合は 1 です。 ポストスクリプト形式やインクルード形式で出力するときは、このオプションは使われません。
- -h | -help
- コマンドの説明を出力して終了する。変換は実行されません。
- -i | -include
- C インクルードファイル形式で出力します。 入力ファイルの名前が付けられた静的配列の定義が出力されます。 標準入力の場合は定義の中身だけ出力されます。
- -l len | -len len
- <len> オクテットだけ出力する。
- -o offset
- 表示されるファイル位置に <offset> を加算する。
- -p | -ps | -postscript | -plain
- ポストスクリプト形式の 16 進ダンプを出力する。別名 プレーン 16 進ダンプ。
- -r | -revert
- 元に戻す: 16 進ダンプからバイナリ形式に変換 (またはパッチ) します。 ファイルへ出力する場合、出力先のファイルは切り詰めされません。 行番号や特定の書式がないプレーン 16 進ダンプを読み込む場合は、 -r -p を指定してください。空白と改行は無視されます。
- -seek offset
- -r の後で使われた場合: 16 進ダンプを出力するファイルの位置に <offset> を加える。
- -s [+][-]seek
- infile の <seek> バイト目 (絶対位置、または相対位置) から開始する。 + は、現在の標準入力の位置から相対的な位置を示します (標準入力から読み込むときのみ意味があります)。 - は、入力の終わりからの文字数を示します ( + と同時に指定した場合は、現在の標準入力の位置から手前の位置を示します)。 -s 引数を指定しなかった場合は、現在のファイル位置から開始されます。
- -u
- 16 進数の表記に大文字を使います。指定がない場合は小文字で出力されます。
- -v | -version
- バージョンを表示します。
警告
xxd -r では行番号の評価に関しての暗黙のルールがいくつかあります。 出力ファイルがシーク可能なら、各行の行番号が順番通りに並んでなくても構いません。 位置が飛んでいても重なっていても大丈夫です。 その場合、次の位置に移動するために lseek(2) が使われます。 出力ファイルがシーク不可なら、「隙間」だけが処理可能です。 隙間は null バイトで埋められます。 xxd -r は不正な入力をエラーにしません。ゴミは静かに読み飛ばされます。 16 進ダンプを編集するときは注意が必要です。 xxd -r は必要な桁 (-c 引数参照) だけ 16 進データを読み込んで、行の残りを無視します。 つまり、ascii (または ebcdic) を示している列への変更は無視されます。 xxd -r -p でプレーン形式 (ポストスクリプト形式) の 16 進ダンプを元に戻す場合は、列の数は影響しません。 2 桁の 16 進数と認識できるものはすべて変換されます。 % xxd -i file例
ファイル の最初の三行 (16 進数で 0x30 バイト) 以降を出力する。'-r -s' の後に指定した数値がファイル中の行番号に加算され、結果、余計なバイトが飛ばされる。
返り値
以下のエラー値が返ります:- 0
- エラーなし。
- -1
- 操作がサポートされていない ( xxd -r -i はまだ不可です)。
- 1
- 引数の解釈に関するエラー。
- 2
- 入力ファイルに関する問題。
- 3
- 出力ファイルに関する問題。
- 4,5
- 指定された位置へシークできなかった。
関連項目
uuencode(1), uudecode(1), patch(1)警告
この奇妙なツールは作者が使いやすいように作られています。 自己責任で使ってください。ファイルをコピーし、それを調べ、ウィザードたれ。バージョン
このマニュアルは xxd バージョン 1.7 について説明しています。著者
(c) 1990-1997 by Juergen WeigertAugust 1996 | Manual page for xxd |