名 前
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 進 の 値 と そ の 値 の 両 方 が 同 じ 色 で カ ラ ー 表 示 さ れ る 。 た い て い は 、 表 示 可 能 文 字 と 非 表 示 可 能 文 字 を 区 別 す る の に 有 用 で す 。 when は never, 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 +seek と xxd -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_file
を output_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 |