Manpages

名 前

xxd - 16 進 ダ ン プ を 作 成 し た り 、 元 に 戻 し た り 。

書 式

xxd -h[elp]
xxd
[options] [infile [outfile]]
xxd
-r[evert] [options] [infile [outfile]]

説 明

フ ァ イ ル や 標 準 入 力 か ら 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) で 表 し た 場 合 の 文 字 が 表 示 さ れ ま す 。 こ の モ ー ド で は -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> オ ク テ ッ ト だ け 出 力 す る 。

-n name | -name name

-i が 使 わ れ た と き に 変 数 名 の 出 力 を 上 書 き す る 。 配 列 は name と 名 付 け ら れ 、 長 さ は name_len と 名 付 け ら れ ま す 。

-o offset 表 示 さ れ る フ ァ イ ル 位 置 に <offset> を 加 算 す る 。
-p
| -ps | -postscript | -plain ポ ス ト ス ク リ プ ト 形 式 の 16 進 ダ ン プ を 出 力 す る 。 別 名 プ レ ー ン 16 進 ダ ン プ 。
-r
| -revert 元 に 戻 す : 16 進 ダ ン プ か ら バ イ ナ リ 形 式 に 変 換 (ま た は パ ッ チ ) し ま す 。 フ ァ イ ル へ 出 力 す る 場 合 、 出 力 先 の フ ァ イ ル は 切 り 詰 め さ れ ま せ ん 。 行 番 号 や 特 定 の 書 式 が な い プ レ ー ン 16 進 ダ ン プ を 読 み 込 む 場 合 は 、 -r -p の 組 み 合 わ せ を 使 っ て く だ さ い 。 空 白 と 改 行 は 無 視 さ れ ま す 。 16 進 ダ ン プ の 代 わ り に ビ ッ ト ダ ン プ を 読 み 込 む に は 、 -r -b の 組 み 合 わ せ を 使 っ て く だ さ い 。
-R when

16 進 の 値 に 基 づ い て 、 16 進 の 値 と そ の 値 の 両 方 が 同 じ 色 で カ ラ ー 表 示 さ れ る 。 た い て い は 、 表 示 可 能 文 字 と 非 表 示 可 能 文 字 を 区 別 す る の に 有 用 で す 。 whennever, always, あ る い は auto の い ず れ か で す 。 $NO_COLOR 環 境 変 数 が 設 定 さ れ て い る と き は 、 カ ラ ー 表 示 は 無 効 化 さ れ ま す 。

-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
% xxd -i < file
の 結 果 は 違 い ま す 。 注 意 し て く だ さ い 。

xxd -s +seekxxd -s seek, の 違 い は 、 lseek(2) を 使 っ て 入 力 を "巻 き 戻 す " か ど う か で す 。 ’+’ が 意 味 を 持 つ の は 、 入 力 が 標 準 入 力 で 、 xxd が 起 動 さ れ た と き に 標 準 入 力 の フ ァ イ ル 位 置 が フ ァ イ ル の 先 頭 で は な か っ た 場 合 で す 。 以 下 の 例 が 分 か り や す い か も し れ ま せ ん (も っ と 混 乱 す る か も !):

’cat’ が 既 に 標 準 入 力 を 終 わ り ま で 読 ん で い る の で 、 読 む 前 に 標 準 入 力 を 巻 き 戻 す 必 要 が あ る 。
% sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file
フ ァ イ ル 位 置 0x480 (=1024+128) 前 方 か ら 16 進 ダ ン プ す る 。 ’+’ は 「 現 在 地 か ら の 相 対 位 置 」 を 意 味 す る の で 、 dd が 1k 処 理 し た 後 か ら 、 さ ら に ’128’ 進 め ま す 。
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet" < file
フ ァ イ ル 位 置 0x100 (=1024-768) か ら 16 進 ダ ン プ す る 。
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet" < file
こ の よ う な 使 い 方 は あ ま り し ま せ ん し 、 ’+’ を 使 う こ と も ほ と ん ど な い で し ょ う 。 -s を 使 う と き は い つ で も 、 strace(1)truss(1) を 使 っ て 、 xxd の 働 き を チ ェ ッ ク す る こ と を お 勧 め し ま す 。

フ ァ イ ル の 最 初 の 三 行 (16 進 数 で 0x30 バ イ ト ) 以 降 を 出 力 す る 。

% xxd -s 0x30 file フ ァ イ ル の 最 後 か ら 三 行 (16 進 数 で 0x30 バ イ ト ) を 出 力 す る 。
% xxd -s -0x30 file

120 バ イ ト を 、 平 文 16 進 ダ ン プ 形 式 で 一 行 に 20 オ ク テ ッ ト ず つ 出 力 す る 。
% xxd -l 120 -ps -c 20 xxd.1

2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567 こ の man ペ ー ジ の 先 頭 か ら 120 バ イ ト を 一 行 に 12 オ ク テ ッ ト ず つ 16 進 ダ ン プ す る 。
% xxd -l 120 -c 12 xxd.1

0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
0000018: 224d 616e 7561 6c20 7061 6765 "Manual page
0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\
0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21st M
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\"
0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut
0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\"
0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug

xxd.1 の 日 付 部 分 だ け を 出 力 す る 。
% xxd -s 0x36 -l 13 -c 13 xxd.1

0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996

input_fileoutput_file に コ ピ ー し 、 先 頭 に 0x00 を 100 バ イ ト 分 付 け 加 え る 。
% xxd input_file | xxd -r -s 100 > output_file

xxd.1 の 日 付 を 修 正 す る 。
% echo "0000037: 3574 68" | xxd -r - xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1

0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996 中 身 が す べ て 0x00 の 65537 バ イ ト の フ ァ イ ル を 作 成 す る 。 た だ し 、 最 後 の バ イ ト だ け は ’A’ (hex 0x41)。
% echo "010000: 41" | xxd -r > file
作 成 し た フ ァ イ ル を オ ー ト ス キ ッ プ を 使 っ て 16 進 ダ ン プ す る 。
% xxd -a -c 12 file

0000000: 0000 0000 0000 0000 0000 0000 ............
*
000fffc: 0000 0000 40 ....A 一 文 字 の ’A’ か ら な る 1 バ イ ト の フ ァ イ ル を 作 成 す る 。
’-r -s’ の 後 に 指 定 し た 数 値 が フ ァ イ ル 中 の 行 番 号 に 加 算 さ れ 、 結 果 、 余 計 な バ イ ト が 飛 ば さ れ る 。
% echo "010000: 41" | xxd -r -s -0x10000 > file

vim(1) の 中 か ら xxd を フ ィ ル タ と し て 実 行 し 、 マ ー ク さ れ た ’a’ か ら ’z’ ま で の 領 域 を 16 進 ダ ン プ す る 。 :’a,’z!xxd

vim(1) の 中 か ら xxd を フ ィ ル タ と し て 実 行 し 、 マ ー ク さ れ た ’a’ か ら ’z’ ま で の 領 域 を バ イ ナ リ に 戻 す 。 :’a,’z!xxd -r

vim(1) の 中 か ら xxd を フ ィ ル タ と し て 実 行 し 、 16 進 ダ ン プ さ れ た 行 を 元 に 戻 す 。 戻 し た い 行 に カ ー ソ ル を 移 動 し て :
!!xxd -r
シ リ ア ル 行 か ら 一 文 字 読 み 込 む
% xxd -c1 < /dev/term/b &
% stty < /dev/term/b -echo -opost -isig -icanon min 1
% echo -n foo > /dev/term/b

返 り 値

以 下 の エ ラ ー 値 が 返 り ま す :

0 エ ラ ー な し 。

-1 操 作 が サ ポ ー ト さ れ て い な い

(xxd -r -i は ま だ 不 可 で す )。

1 引 数 の 解 釈 に 関 す る エ ラ ー 。

2 入 力 フ ァ イ ル に 関 す る 問 題 。

3 出 力 フ ァ イ ル に 関 す る 問 題 。

4,5 指 定 さ れ た 位 置 へ シ ー ク で き な

か っ た 。

関 連 項 目

uuencode(1), uudecode(1), patch(1)

警 告

こ の 奇 妙 な ツ ー ル は 作 者 が 使 い や す い よ う に 作 ら れ て い ま す 。 自 己 責 任 で 使 っ て く だ さ い 。 フ ァ イ ル を コ ピ ー し 、 そ れ を 調 べ 、 ウ ィ ザ ー ド た れ 。

バ ー ジ ョ ン

こ の マ ニ ュ ア ル は xxd バ ー ジ ョ ン 1.7 に つ い て 説 明 し て い ま す 。

著 者

(c) 1990-1997 by Juergen Weigert
<jnweiger [AT] informatik.de> 私 の 功 績 と し て 自 由 に 配 布 し て く だ さ い 。 儲 か っ た ら 教 え て く だ さ い 。 損 し て も 知 り ま せ ん 。 マ ニ ュ ア ル は Tony Nugent
<tony [AT] sctnugen.au> <T.Nugent [AT] sct.au> に よ っ て 書 か れ 、 Bram Moolenaar が 少 し 変 更 を 加 え 、 Juergen Weigert が 編 集 し ま し た 。