名 前
diff − 2 つ の フ ァ イ ル 間 の 違 い を 探 す
書 式
diff [−abcdefhilnpqrstuwyBEHNPT] [−LINES] [−x PATTERN] [−C LINES] [−D NAME] [−F REGEXP] [−I REGEXP] [−L LABEL] [−S FILE] [−U LINES] [−W COLUMNS] [−X FILE] [−−binary] [−−brief] [−−changed−group−format=fORMAT] [−−context[=LINES]] [−−diff−program=PROGRAM] [−−ed] [−−exclude=PATTERN] [−−exclude-from=FILE] [−−expand−tabs] [−−forward−ed] [−−from−file=FILE] [−−horizon−lines=LINES] [−−ifdef=NAME] [−−ignore−all−space] [−−ignore−blank−lines] [−−ignore−case] [−−ignore−file−name−case] [−−ignore−matching−lines=REGEXP] [−−ignore−space−change] [−−ignore−tab−expansion] [−−inhibit−hunk−merge] [−−initial−tab] [−−label=LABEL] [−−left−column] [−−line−format=FORMAT] [−−minimal] [−−new−file] [−−new−group−format=FORMAT] [−−new−line−format=FORMAT] [−−no−ignore−file−name−case] [−−old−group−format=FORMAT] [−−old−line−format=FORMAT] [−−paginate] [−−rcs] [−−recursive] [−−report−identical−files] [−−sdiff−merge−assist] [−−show−c−function] [−−show−function−line=REGEXP] [−−side−by−side] [−−speed−large−files] [−−starting−file=FILE] [−−strip−trailing−cr] [−−supress−common−lines] [−−text] [−−to−file=FILE] [−−unchanged−group−format=FORMAT] [−−unchanged−line−format=FORMAT] [−−unidirectional−new−file] [−−unified[=LINES]] [−−width=COLUMNS] FROMFILE TOFILE
diff [−v] [−−help] [−−version]
説 明
diff は 2 つ の フ ァ イ ル を 比 較 し 、 そ れ ら の 違 い を 記 述 し て 出 力 す る 。 も っ と も 簡 単 な 場 合 は 、 比 較 対 象 の フ ァ イ ル は FROMFILE と TOFILE で あ る 。 こ れ ら の フ ァ イ ル の う ち の ど ち ら か は ’−’ と 指 定 し て も 良 い 。 こ の 時 は そ の フ ァ イ ル は 標 準 入 力 か ら 読 み 込 ま れ る 。
FROMFILE が デ ィ レ ク ト リ で TOFILE が デ ィ レ ク ト リ で は な い 場 合 、 diff は デ ィ レ ク ト リ FROMFILE に あ る 、 フ ァ イ ル 名 が TOFILE の フ ァ イ ル を 比 較 対 象 に す る (逆 も 同 様 )。 デ ィ レ ク ト リ で な い 方 の 指 定 を ’−’ に す る こ と は で き な い 。 両 方 が デ ィ レ ク ト リ の と き は 、 diff は 双 方 の デ ィ レ ク ト リ に あ る 、 対 応 す る フ ァ イ ル を ア ル フ ァ ベ ッ ト 順 に そ れ ぞ れ 比 較 す る 。 比 較 は 再 帰 的 に は 行 わ れ な い が 、 −r ま た は −−recursive オ プ シ ョ ン を 指 定 す れ ば 再 帰 的 に な る 。 diff は デ ィ レ ク ト リ の 内 容 そ の も の を フ ァ イ ル の よ う に 比 較 す る こ と は し な い 。 フ ル パ ス 指 定 の フ ァ イ ル は ’−’ で あ っ て は な ら な い 。 な ぜ な ら 標 準 入 力 に は 名 前 が な い の で 、 「 同 名 の フ ァ イ ル 」 と い う 概 念 が 使 え な い か ら で あ る 。
−−from−file=FILE オ プ シ ョ ン が 与 え ら れ る と 、 任 意 の 数 の フ ァ イ ル 名 を 与 え る こ と が で き 、 そ れ ぞ れ の フ ァ イ ル は FILE と 比 較 さ れ る 。 同 様 に 、 −−to−file=FILE オ プ シ ョ ン が 与 え ら れ る と 、 そ れ ぞ れ 指 定 さ れ た フ ァ イ ル は FILE と 比 較 さ れ る 。 [訳 注 : 2.7 に は こ れ ら の オ プ シ ョ ン は 存 在 し な い ]
オ プ シ ョ ン
−LINES 異 な っ て い る 部 分 の 前 後
LINES 行 (整 数 ) 分 の コ ン テ ク ス ト を 表 示 す
る 。 こ の オ プ シ ョ ン は 出 力 形 式 自 体 の 指 定 は 行 わ な い 。 し た が っ て −c や −u オ プ シ ョ ン と 一 緒 に 用 い な い と 、 な ん の 効 果 も 持 た な い 。 こ の オ プ シ ョ ン は obsolete で あ る 。 patch(1) が 正 し く 動 作 す る に は 、 少 な く と も 2 行 の コ ン テ ク ス ト が 必 要 で あ る 。
−a,
−−text フ ァ イ ル
が テ キ ス ト に
は 見 え な い よ
う な 場 合 で も
、 全 て の フ ァ
イ ル を テ キ ス
ト と み な し て 1
行 ず つ 比 較 を
行 う 。
−b, −−ignore−space−change
ス ペ ー ス の 数
だ け が 違 う 場
合 に は 違 い を
無 視 す る 。 不
完 全 な 行 は 無
視 さ れ る 。
−c
context 出 力 形 式 を 用 い る 。
−d,
−−minimal ア ル ゴ
リ ズ ム を 変 更
し 、 よ り 小 さ
な 差 分 が 生 成
で き る よ う に
す る 。 こ れ を
使 う と diff は 遅
く な る (非 常 に
遅 く な る 場 合
も あ る )。
−e, −−ed
ed(1) の ス ク リ プ ト 形 式 で 出 力 す る 。
−f, −−forward−ed
ed の ス ク リ プ ト と 一 見 同 じ よ う な 出 力 を す る 。 し か し 出 力 に 現 れ る 順 序 が 異 な る [訳 注 : し た が っ て ed で は 使 え な い ]。
−h 現 在 は 何 も 効 果 を 持 た な い 。
Unix と の 互 換 性 の た め に 存 在 し て い る 。
こ れ は 推 奨 さ れ な い 。
−i,
−−ignore−case 英 大
文 字 と 小 文 字
の 違 い を 無 視
す る 。
−l, −−paginate 出 力
を pr(1) に 通 し て
ペ ー ジ 付 け を
行 う 。
−n, −−rcs
RCS 形 式 の diff を 出 力 す る 。 −f と 似 て い る が 、 そ れ ぞ れ の コ マ ン ド は 処 理 す る 行 数 を 指 定 す る 。
−p,
−−show−c−function 変
更 が ど の C 関 数
で 行 わ れ た の
か を 表 示 す る
。
’−F’^[_a−zA−Z$]’’
と 同 じ 。
−q, −−brief フ ァ イ
ル が 違 う か ど
う か だ け を 報
告 す る 。 違 い
の 詳 細 は 報 告
し な い 。
−r, −−recursive デ ィ
レ ク ト リ を 比
較 す る と き 、
見 付 か っ た サ
ブ デ ィ レ ク ト
リ を す べ て 再
帰 的 に 比 較 す
る 。
−s,
−−report−identical−files
2 つ の フ ァ イ ル が 同 じ だ っ た と き も 報 告 す る 。
−t, −−expand−tabs 入 力 フ ァ イ ル で の タ ブ に よ る 位 置 あ わ せ を 保 存 す る た め 、 出 力 の タ ブ を ス ペ ー ス に 展 開 す る 。
−u
unified 出 力 形 式 を 用 い る 。
−w,
−−ignore−all−space 行
を 比 較 す る と
き ス ペ ー ス を
無 視 す る 。 不
完 全 な 行 は 無
視 さ れ る 。
−x PATTERN,
−−exclude=PATTERN デ ィ
レ ク ト リ を 比
較 す る と き 、
フ ァ イ ル 名 の base
部 が PATTERN に マ ッ
チ す る フ ァ イ
ル や サ ブ デ ィ
レ ク ト リ を 無
視 す る 。
−y, −−side−by−side
side-by-side 出 力 形 式 を 用 い る 。
−B,
−−ignore−blank−lines 空
行 を 挿 入 ・ 削
除 す る だ け の
変 更 を 無 視 す
る 。
−C LINES,
−−context[=LINES]
context 出 力 形 式 を 用 い 、 LINES 行 (整 数 値 ) の コ ン テ ク ス ト を 表 示 す る 。 LINES が 与 え ら れ な け れ ば 3 行 表 示 す る 。 patch が 正 し く 動 作 す る た め に は 、 少 な く と も 2 行 の コ ン テ ク ス ト が 必 要 で あ る こ と が 多 い 。
−D NAME, −−ifdef=NAME
if-then-else 形 式 で マ ー ジ さ れ た 出 力 を 行 い 、 プ リ プ ロ セ ッ サ の 条 件 マ ク ロ に NAME を 用 い る 。
−E,
−−ignore−tab−expansion タ
ブ 展 開 に よ る
ス ペ ー ス の 変
更 を 無 視 す る
。
−F REGEXP,
−−show−function−line=REGEXP
context 形 式 と unified 形 式 に お い て 、 各 差 分 hunk (テ キ ス ト ブ ロ ッ ク ) に 対 し 、 そ の 前 方 で REGEXP に マ ッ チ し た 最 後 の 行 の 一 部 を 表 示 す る 。
−H,
−−speed−large−files 小
さ な 変 更 が 大
量 に あ る よ う
な 大 き な フ ァ
イ ル を 高 速 に
扱 う た め に 、
ヒ ュ ー リ ス テ
ィ ッ ク な 手 法
を 用 い る 。 短
縮 形 式 −H は 推
奨 さ れ な く な
っ た 。
−I REGEXP,
−−ignore−matching−lines=REGEXP
REGEXP に マ ッ チ す る よ う な 行 を 挿 入 ・ 削 除 す る だ け の 変 更 を 無 視 す る 。
−L LABEL, −−label=LABEL
context 形 式 と unified 形 式 の ヘ ッ ダ に 、 フ ァ イ ル 名 で は な く LABEL を 用 い る 。 短 縮 形 式 −L は 推 奨 さ れ な く な っ た 。
−N,
−−new−file デ ィ レ
ク ト リ を 比 較
す る 際 、 片 方
の デ ィ レ ク ト
リ に の み フ ァ
イ ル が 存 在 し
て い た ら 、 も
う 片 方 の デ ィ
レ ク ト リ に は
同 名 の 空 っ ぽ
の フ ァ イ ル が
あ る よ う に 動
作 す る 。
−P,
−−unidirectional−new−file
デ ィ レ ク ト リ
を 比 較 す る 際
、 2 番 目 の デ ィ
レ ク ト リ に の
み フ ァ イ ル が
存 在 し て い た
ら 、 1 番 目 の デ
ィ レ ク ト リ に
は 同 名 の 空 っ
ぽ の フ ァ イ ル
が あ る よ う に
動 作 す る 。 短
縮 形 式 −P は 推
奨 さ れ な く な
っ た 。
−S FILE,
−−starting−file=FILE デ
ィ レ ク ト リ を
比 較 す る 際 、
FILE か ら 始 め る
。 中 断 し た 比
較 を 続 行 す る
際 に 利 用 で き
る 。
−T, −−initial−tab
normal 形 式 や context 形 式 で 、 テ キ ス ト の 前 に ス ペ ー ス で な く タ ブ を 出 力 す る 。 こ う す る と 行 中 で の タ ブ に よ る 桁 揃 え が 普 通 に 見 え る 。
−U LINES, −−unified[=LINES]
unified 出 力 形 式 を 用 い 、 LINES 行 (整 数 値 ) の コ ン テ ク ス ト を 表 示 す る 。 LINES が 与 え ら れ な け れ ば 3 行 表 示 す る 。 patch が 正 し く 動 作 す る た め に は 、 少 な く と も 2 行 の コ ン テ ク ス ト が 必 要 で あ る こ と が 多 い 。
−W COLUMNS, −−width=COLUMNS
side-by-side 形 式 で 、 出 力 の 幅 を COLUMNS に す る 。
−XFILE,
−−exclude−from=FILE デ
ィ レ ク ト リ を
比 較 す る 際 、
フ ァ イ ル 名 の base
部 が FILE の パ タ
ー ン の い ず れ
か に マ ッ チ す
る フ ァ イ ル や
サ ブ デ ィ レ ク
ト リ を 無 視 す
る 。
−−binary デ ー タ を
バ イ ナ リ モ ー
ド で 読 み 書 き
す る (Linux や そ の 他
の POSIX ホ ス ト で は
意 味 な し )。
−−changed−group−format=FORMAT
if-then-else 形 式 で 、 両 方 の フ ァ イ ル で 異 な る 行 グ ル ー プ の 出 力 に FORMAT を 用 い る 。
−−diff−program=
PROGRAM フ ァ イ ル の
比 較 す る た め
に diff と 互 換 性
の あ る 外 部 プ
ロ グ ラ ム PROGRAM を
用 い る 。
−−from−file=FILE
FILE を 各 オ ペ ラ ン ド と 比 較 す る (FILE は デ ィ レ ク ト リ で も 良 い )。 [訳 注 : 2.7 に は こ の オ プ シ ョ ン は 存 在 し な い ]
−−horizon−lines=LINES
差 分 を も っ と
も コ ン パ ク ト
に 出 力 す る た
め に 、 違 う 部
分 の 前 後 に あ
る 共 通 部 分 の
そ れ ぞ れ LINES 行
を 捨 て ず に 保
存 す る 。
−−ignore−file−name−case
フ ァ イ ル を 比
較 す る 際 に フ
ァ イ ル 名 の 大
文 字 小 文 字 を
無 視 す る 。 そ
の た め ’’foo’’
と ’’Foo’’ は 同
じ と さ れ る の
で 、 互 い に 比
較 さ れ る 。
−−inhibit−hunk−merge 隣
接 す る hunk の 境 界
を 移 動 し て hunk を
マ ー ジ す る 動
作 を 行 わ な い
。
−−left−column
side-by-side 形 式 で 、 共 通 な 行 は 左 側 の 列 に し か 表 示 し な い 。
−−line−format=FORMAT
if-then-else 形 式 で 、 全 て の 入 力 行 の 出 力 に FORMAT を 用 い る 。
−−new−group−format=FORMAT
if-then-else 形 式 で 、 2 番 目 の フ ァ イ ル だ け に あ る 行 グ ル ー プ の 出 力 に FORMAT を 用 い る 。
−−new−line−format=FORMAT
if-then-else 形 式 で 、 2 番 目 の フ ァ イ ル だ け に あ る 行 の 出 力 に FORMAT を 用 い る 。
−−no−ignore−file−name−case
フ ァ イ ル を 比
較 す る 際 に 、
フ ァ イ ル 名 の
大 文 字 小 文 字
を 考 慮 す る 。
そ の た め
’’foo’’ と
’’Foo’’ は 同 じ
も の と さ れ な
い 。
−−ignore−file−name−case
を 参 照 す る こ
と 。
−−old−group−format=FORMAT
if-then-else 形 式 で 、 1 番 目 の フ ァ イ ル だ け に あ る 行 グ ル ー プ の 出 力 に FORMAT を 用 い る 。
−−old−line−format=FORMAT
if-then-else 形 式 で 、 1 番 目 の フ ァ イ ル だ け に あ る 行 の 出 力 に FORMAT を 用 い る 。
−−sdiff−merge−assist
sdiff(1) 用 に 追 加 情 報 を 表 示 す る 。 sdiff が diff を 実 行 す る と き に こ の オ プ シ ョ ン を 用 い る 。 通 常 の ユ ー ザ ー が こ の オ プ シ ョ ン を 直 接 指 定 す る 場 合 は あ ま り 想 定 さ れ て い な い 。
−−strip−trailing−cr
行 末 の CR を 取 り
除 く 。 行 末 の
マ ー カ と し て CRLF
を 使 う シ ス テ
ム の 出 力 を 処
理 す る と き に
役 立 つ 。
−−suppress−common−lines
side-by-side 形 式 で 共 通 な 行 を 表 示 し な い 。
−−unchanged−group−format=FORMAT
if-then-else 形 式 で 、 両 方 の フ ァ イ ル に 共 通 な 行 グ ル ー プ の 出 力 に FORMAT を 用 い る 。
−−unchanged−line−format=FORMAT
if-then-else 形 式 で 、 両 方 の フ ァ イ ル に 共 通 な 行 の 出 力 に FORMAT を 用 い る 。
−−help 標 準 出 力 に 使 用 方 法 の メ ッ セ ー ジ を 出 力 し て 正 常 終 了 す る 。
−v, −−version
diff の バ ー ジ ョ ン 番 号 を 出 力 す る 。
出 力 の 形 式
context
形 式
context 出 力 形 式 は 2
行 の ヘ ッ ダ か
ら は じ ま る 。
こ れ は 以 下 の
よ う な も の で
あ る :
*** FROMFILE
FROMFILE-MODIFICATION-TIME
--- TOFILE TOFILE-MODIFICATION-TIME
−L LABEL を 用 い る と ヘ ッ ダ の 内 容 は 変 化 す る 。 次 に 来 る の は hunk (テ キ ス ト ブ ロ ッ ク ) で あ る 。 繰 り 返 し 登 場 す る こ と も あ る 。 context 形 式 の hunk は 以 下 の よ う な も の で あ る :
***************
*** FROMFILE-LINE-RANGE ****
FROMFILE-LINE
FROMFILE-LINE...
--- TOFILE-LINE-RANGE ----
TOFILE-LINE
TOFILE-LINE... 異 な っ て い
る 行 の 周 辺 の
コ ン テ ク ス ト
の 各 行 に は 、
先 頭 に 2 つ の ス
ペ ー ス が つ い
て い る 。 2 つ の
フ ァ イ ル 間 で
異 な っ て い る
行 に は 、 先 頭
に 表 示 文 字 と
ス ペ ー ス が つ
く 。
!
2 つ の フ ァ イ ル 間 で 変 更 さ れ た 部 分 の 各 行 。 も う 一 方 の フ ァ イ ル の 対 応 す る 部 分 も ’!’ で マ ー ク さ れ て 表 示 さ れ る 。
+
2 つ め の フ ァ イ ル で 「 挿 入 さ れ た 」 行 。 1 つ め の フ ァ イ ル に 対 応 部 分 は な い 。
-
1 つ め の フ ァ イ ル で 「 削 除 さ れ た 」 行 。 2 つ め の フ ァ イ ル に 対 応 部 分 は な い 。
hunk の 全 て の 変 更 が 挿 入 で あ れ ば 、 FROMFILE 各 行 は 省 略 さ れ る 。 ま た 全 て の 変 更 が 削 除 で あ れ ば 、 TOFILE 各 行 は 省 略 さ れ る 。
unified
形 式
--- FROMFILE FROMFILE-MODIFICATION-TIME
+++ TOFILE TOFILE-MODIFICATION-TIME
−L LABEL を 用 い る と ヘ ッ ダ の 内 容 は 変 化 す る 。 次 に 来 る の は hunk (テ キ ス ト ブ ロ ッ ク ) で あ る 。 繰 り 返 し 登 場 す る こ と も あ る 。 そ れ ぞ れ の hunk は フ ァ イ ル の 異 な っ て い る 1 つ 1 つ の 部 分 を 示 し て い る 。 unified 形 式 の hunk は 以 下 の よ う な も の で あ る :
@@
FROMFILE-RANGE TOFILE-RANGE @@
LINE-FROM-EITHER-FILE
LINE-FROM-EITHER-FILE... 両 者 で 共
通 な 行 の 前 に
は 1 つ の ス ペ ー
ス が 置 か れ る
。 異 な る 行 の
前 に は 以 下 の
表 示 文 字 が 置
か れ る :
+ こ こ で
1 つ め の フ ァ イ ル に 行 の 追 加 が 行 わ れ た 。
- こ こ で
1 つ め の フ ァ イ ル か ら 行 の 削 除 が 行 わ れ た 。
side-by-side 形 式 フ ァ イ ル は 2 列 に 表 示 さ れ 、 間 に の ど (gutter) が 置 か れ る 。 の ど に は 以 下 の マ ー カ ー の い ず れ か 1 つ が 含 ま れ る 。
[訳 注 ]: 「 の ど
(gutter)」 と は 、 印 刷 用 語 で 左 右 の ペ ー ジ の 間 に あ る 部 分 (す
な わ ち 、 折 り 目 に な る と こ ろ ) を 指 す 。
’ ’ 対 応 す る 行 が 共 通 で あ る 。 つ ま り 、 両 方 の 行 が 同 一 で あ る か 、 違 い が
−−ignore オ プ シ ョ ン の い ず れ か に よ っ て 無 視 さ れ た 。
| 対 応 す る 行 が 異 な る 。 両 方 と も 完 全 か 、 両 方 と も 不 完 全 か で あ る 。
< フ ァ イ ル は 異 な り 、
1 番 目 の フ ァ イ ル に だ け こ の 行 が 含 ま れ て い る 。
> フ ァ イ ル は 異 な り 、
2 番 目 の フ ァ イ ル に だ け こ の 行 が 含 ま れ て い る 。
(
1 番 目 の フ ァ イ ル に だ け こ の 行 が 含 ま れ て い る が 、 違 い は 無 視 さ れ る 。
)
2 番 目 の フ ァ イ ル に だ け こ の 行 が 含 ま れ て い る が 、 違 い は 無 視 さ れ る 。
\
対 応 す
る 行 が 異 な る
。 1 番 目 の 行 だ
け に 行 末 の 改
行 が な い 。
/ 対 応 す る 行 が
異 な る 。 2 番 目
の 行 だ け に 行
末 の 改 行 が な
い 。 通 常 出 力
行 は 、 そ こ に 含 ま れ る 行 の 末 尾 に 改 行 が な い 場 合 に 限 っ て 改 行 さ れ な い 。 し か し 、 出 力 行 が 2 行 の 差 異 を 表 し て い る 場 合 に は 、 片 方 だ け に 改 行 が な い 場 合 も あ り 得 る 。 こ の 場 合 出 力 行 に は 改 行 が 出 力 さ れ る が 、 の ど の マ ー ク は 1 番 目 の 行 末 に 改 行 が な け れ ば ’\’ に 、 2 番 目 の 行 末 に 改 行 が な け れ ば ’/’ に な る 。
side-by-side 形 式 が 一 番 読 み や す い よ う な 場 合 も あ る が 、 限 界 も あ る 。 こ の 形 式 は 通 常 よ り も ず っ と 広 い 幅 の 出 力 を 生 成 し 、 長 す ぎ る 行 は 折 り 畳 ん で し ま う 。 ま た こ の 出 力 で は 通 常 よ り も 文 字 の 整 列 へ の 依 存 が 大 き く な る の で 、 等 幅 フ ォ ン ト を 使 っ て い な か っ た り 、 通 常 と 異 な る タ ブ ス ト ッ プ を 使 っ て い た り 、 印 字 さ れ な い 文 字 を 使 っ て い た り す る と 、 出 力 が 非 常 に 醜 く な る 。
ed(1)
形 式
1 つ 以 上 の 差 分 hunk
か ら 構 成 さ れ
る 。 末 尾 に 近
い 方 の 変 更 が
先 に 現 れ 、 行
数 の 変 化 が 以
降 の ed の 行 番
号 解 釈 に 影 響
し な い よ う に
な っ て い る 。
ed 形 式 の hunk は 以
下 の よ う な も
の で あ る :
CHANGE-COMMAND
TO-FILE-LINE
TO-FILE-LINE...
.
ed は 入 力 の 末 尾 を 表 す た め に ピ リ オ ド 1 つ だ け の 行 を 用 い る の で 、 diff は 変 更 さ れ た 行 の う ち 、 ピ リ オ ド 1 つ だ け の 行 を ピ リ オ ド 2 つ に 変 更 し て プ ロ テ ク ト し 、 続 け て 2 つ の ピ リ オ ド を 1 つ に す る ed コ マ ン ド を 書 く 。 ed 形 式 は 改 行 さ れ て い な い 行 を 表 す こ と が で き な い 。 し た が っ て 2 番 目 の フ ァ イ ル の 最 終 行 が 変 更 さ れ て い て 、 か つ 改 行 さ れ て い な か っ た 場 合 、 diff は エ ラ ー を 報 告 し て 、 改 行 が あ る か の よ う に 動 作 す る 。 変 更 コ マ ン ド に は 3 つ の 種 類 が あ る 。 そ れ ぞ れ 、 1 番 目 の フ ァ イ ル の 行 番 号 (ま た は コ ン マ 区 切 り 指 定 の 行 範 囲 指 定 )、 続 け て 変 更 の 種 類 を 示 す 1 文 字 の 文 字 か ら な る 。 行 番 号 は 、 す べ て フ ァ イ ル の オ リ ジ ナ ル の 行 番 号 で あ る 。 変 更 コ マ ン ド の 種 類 は 以 下 の 通 り :
La
1 番 目 の フ ァ イ ル の L 行 目 以 降 に 、 2 番 目 の フ ァ イ ル か ら テ キ ス ト を 追 加 す る 。 例 え ば ’8a’ は 、 以 降 の 行 を フ ァ イ ル 1 の 8 行 目 以 降 に 追 加 す る 。
Rc
1 番 目 の フ ァ イ ル の 行 範 囲 R を 、 引 き 続 く 行 で 置 き 換 え る 。 追 加 と 削 除 の 組 み 合 わ せ で も 同 じ こ と が で き る が 、 こ ち ら の ほ う が コ ン パ ク ト で あ る 。 例 え ば ’5,7c’ は フ ァ イ ル 1 の 5 行 目 か ら 7 行 目 を フ ァ イ ル 2 か ら 読 み 込 ん だ 内 容 で 置 き 換 え る 。
Rd
1 番 目 の フ ァ イ ル の 行 範 囲 R を 削 除 す る 。 例 え ば ’5,7d’ は フ ァ イ ル 1 の 5 行 目 か ら 7 行 目 ま で を 削 除 す る 。
diff は ed ス ク リ プ ト の よ う な 出 力 で 、 か つ 各 hunk が forward 方 向 (先 頭 か ら 末 尾 へ ) の よ う な 出 力 も 生 成 で き る 。 コ マ ン ド の 形 式 も ち ょ っ と 変 化 し て い る 。 コ マ ン ド 文 字 が 、 修 正 す る 行 や 行 範 囲 の 先 に 来 る の で あ る 。 ま た 、 ピ リ オ ド 1 つ だ け の 行 を 特 別 扱 い す る こ と も し な い 。 ed 形 式 と 同 様 に 、 forward ed 形 式 も 改 行 し て い な い 行 を 表 す こ と は で き な い 。
forward ed 形 式 は あ ま り 便 利 で は な い 。 な ぜ な ら ed も patch も こ の 形 式 の diff を 用 い る こ と が で き な い か ら で あ る 。 こ れ は 主 に 古 い バ ー ジ ョ ン の diff と の 互 換 性 の た め に 存 在 し て い る 。
RCS 形
式
RCS 出 力 形 式 は Revision
Control System (RCS) で 用 い る
た め に 特 別 に
設 計 さ れ た も
の で あ る 。 RCS は
バ ー ジ ョ ン や
シ ス テ ム の 異
な る フ ァ イ ル
を 扱 う た め の
、 フ リ ー な プ
ロ グ ラ ム セ ッ
ト で あ る 。 こ
の 形 式 は forward ed
形 式 と 似 て い
る が 、 ピ リ オ
ド 1 つ の 行 や 改
行 し て い な い
行 の 問 題 を 回
避 し て い る の
で 、 フ ァ イ ル
内 容 の 任 意 の
変 更 を 表 す こ
と が で き る 。
テ キ ス ト セ ク
シ ョ ン を ピ リ
オ ド 1 つ の 行 で
終 わ る の で は
な く 、 そ れ ぞ
れ の コ マ ン ド
で 、 適 用 す る
行 数 を 指 定 し
て い る の で あ
る 。 ま た ’c’
コ マ ン ド の 代
わ り に ’a’ と
’d’ の 組 み 合
わ せ を 用 い て
い る 。 さ ら に 2
番 目 の フ ァ イ
ル の 末 尾 が 変
更 さ れ て い て
、 か つ 改 行 で
終 わ っ て い な
い 場 合 に は 、
出 力 の 末 尾 も
改 行 さ れ な い
状 態 で 終 わ る
。
IF−THEN−ELSE
C ソ
ー ス 形 式
diff を 用 い て 2 フ
ァ イ ル の C ソ ー
ス コ ー ド を マ
ー ジ す る こ と
も で き る 。 こ
の 出 力 形 式 に
は 、 両 方 の フ
ァ イ ル の 行 が
す べ て 含 ま れ
る 。 両 方 の フ
ァ イ ル に 共 通
な 行 は 一 度 し
か 登 場 し な い
。 異 な る 部 分
は C プ リ プ ロ セ
ッ サ の 指 定 を
用 い て 分 離 さ
れ る 。 #ifdef NAME
ま た は #ifndef NAME, ,BR
#else ", and " #endif で あ る
。 出 力 を コ ン
パ イ ル す る と
き 、 マ ク ロ NAME
を 定 義 し た り
、 未 定 義 の ま
ま に す る こ と
に よ っ て 、 ど
ち ら の バ ー ジ
ョ ン を 使 う か
を 選 択 で き る
。 例 え ば 、 ’wait
(&s)’ と い う イ ン
ス タ ン ス を ’waitpid
(-1, &s, 0)’ に 変 更 し
、 新 旧 の フ ァ
イ ル を
’--ifdef=HAVE_WAITPID’ オ
プ シ ョ ン に よ
っ て マ ー ジ す
る と 、 影 響 を
受 け た 部 分 の
コ ー ド は 以 下
の よ う に な る
だ ろ う :
do {
#ifndef HAVE_WAITPID
if ((w = wait (&s)) < 0 && errno != EINTR)
#else /* HAVE_WAITPID */
if ((w = waitpid (-1, &s, 0)) < 0 && errno !=
EINTR)
#endif /* HAVE_WAITPID */
return w; }
while (w != child); 行 グ ル ー
プ 形 式 行 グ ル
ー プ 形 式 を 用
い る と 、 if-then-else 入
力 を 受 け 入 れ
る 多 く の ア プ
リ ケ ー シ ョ ン
に 適 し た 形 式
を 指 定 で き る
。 例 え ば プ ロ
グ ラ ミ ン グ 言
語 や 文 書 整 形
言 語 な ど が 挙
げ ら れ る 。 行
グ ル ー プ 形 式
は 、 似 て い る
行 か ら な る 隣
接 し た グ ル ー
プ の 出 力 形 式
を 指 定 す る 。
例 え ば 、 以 下
の コ マ ン ド は TeX
フ ァ イ ル ’old’
と ’new’ を 比 較
し 、 old の 部 分 を
’\begin{em}’-’\end{em}’ で
囲 み 、 new の 部 分
を ’\begin{bf}’-’\end{bf}’
で 囲 ん で マ ー
ジ し た か た ち
で 出 力 す る 。
diff \
--old-group-format=’\begin{em}
%<\end{em}
’ \
--new-group-format=’\begin{bf}
%>\end{bf}
’ \
old new 以 下 の コ マ
ン ド も 上 記 の
例 と 同 じ だ が
、 や や 記 述 が
多 い 。 デ フ ォ
ル ト の 行 グ ル
ー プ 形 式 も 指
定 し て い る か
ら で あ る 。
diff \
--old-group-format=’\begin{em}
%<\end{em}
’ \
--new-group-format=’\begin{bf}
%>\end{bf}
’ \
--unchanged-group-format=’%=’ \
--changed-group-format=’\begin{em}
%<\end{em}
\begin{bf}
%>\end{bf}
’ \
old new 次 に も う 少
し 進 ん だ 例 を
紹 介 す る 。 こ
れ は 差 分 リ ス
ト を 、
"plain English" ス タ イ
ル で 行 番 号 を
書 い た ヘ ッ ダ
と と も に 出 力
す る 。
diff \
--unchanged-group-format=’’ \
--old-group-format=’-------- %dn line%(n=1?:s) deleted
at %df:
%<’ \
--new-group-format=’-------- %dN line%(N=1?:s) added
after %de:
%>’ \
--changed-group-format=’-------- %dn line%(n=1?:s)
changed at %df:
%<-------- to:
%>’ \
old new 行 グ ル ー プ
形 式 を 指 定 す
る に は 、 diff を
以 下 の オ プ シ
ョ ン の ど れ か 1
つ を 指 定 し て
実 行 す る 。 4 つ
ま で の 行 グ ル
ー プ 形 式 を 指
定 で き 、 各 指
定 が そ れ ぞ れ
行 グ ル ー プ 1 つ
に 対 応 す る 。
FORMAT に は シ ェ ル
の メ タ キ ャ ラ
ク タ が 入 っ て
い る こ と が 多
い の で 、 ク ォ
ー ト す る べ き
で あ ろ う 。
−−old-group−format=FORMAT
こ れ ら の 行 グ
ル ー プ は 1 番 目
の フ ァ イ ル だ
け に あ る 行 か
ら な る hunk で あ る
。 デ フ ォ ル ト
の old グ ル ー プ 形
式 は 、 changed グ ル
ー プ 形 式 が 指
定 さ れ て い れ
ば そ れ と 同 じ
に な る 。 さ れ
て い な け れ ば
行 グ ル ー プ は
そ の ま ま の か
た ち で 出 力 さ
れ る 。
−−new-group−format=FORMAT
こ れ ら の 行 グ
ル ー プ は 2 番 目
の フ ァ イ ル だ
け に あ る 行 か
ら な る hunk で あ る
。 デ フ ォ ル ト
の new グ ル ー プ 形
式 は 、 changed グ ル
ー プ 形 式 が 指
定 さ れ て い れ
ば そ れ と 同 じ
に な る 。 さ れ
て い な け れ ば
行 グ ル ー プ は
そ の ま ま の か
た ち で 出 力 さ
れ る 。
−−changed−group−format=FORMAT
こ れ ら の 行 グ
ル ー プ は 両 方
の フ ァ イ ル の
行 か ら な る hunk で
あ る 。 デ フ ォ
ル ト の changed グ ル
ー プ 形 式 は 、 old
グ ル ー プ と new グ
ル ー プ の 形 式
を 連 結 し た も
の で あ る 。
−−unchanged−group−format=FORMAT
こ れ ら の 行 グ
ル ー プ は 両 方
の フ ァ イ ル に
共 通 の 行 か ら
な る hunk で あ る 。
デ フ ォ ル ト の
unchanged グ ル ー プ 形
式 は 、 行 グ ル
ー プ を そ の ま
ま の か た ち で
出 力 す る も の
で あ る 。 グ ル
ー プ 変 換
%<
1 番 目 の フ ァ イ ル か ら の 行 を 意 味 す る 。 行 末 尾 の 改 行 も 含 む 。 各 行 は old 行 形 式 に よ っ て 整 形 さ れ る 。
%>
2 番 目 の フ ァ イ ル か ら の 行 を 意 味 す る 。 行 末 尾 の 改 行 も 含 む 。 各 行 は new 行 形 式 に よ っ て 整 形 さ れ る 。
%=
両 方 の
フ ァ イ ル で 共
通 な 行 を 意 味
す る 。 行 末 尾
の 改 行 も 含 む
。 各 行 は unchanged 行
形 式 に よ っ て
整 形 さ れ る 。
%%
’%’ を 表 す 。
%c’C’’
こ こ で C は 文 字 1 文 字 で 、 C を 表 す 。 C に バ ッ ク ス ラ ッ シ ュ や ア ポ ス ト ロ フ ィ は 指 定 で き な い 。 例 え ば ’%c’:’’ は コ ロ ン を 表 し 、 こ れ は if-then-else 形 式 の then 部 分 で も コ ロ ン と し て 解 釈 さ れ る 。 通 常 は コ ロ ン は then 部 分 の 終 わ り と し て 扱 わ れ る 。
%c’\O’’
こ こ で 0 は 1 桁
か ら 3 桁 ま で の 8
進 数 字 で あ り
、 8 進 の コ ー ド
0 に 対 応 す る
文 字 を 表 す 。
例 え ば ’%c’0円’’
は ナ ル 文 字 に
な る 。
(A=B?T:E)
A が B に 等 し い 場 合 は T、 等 し く な い 場 合 は E。 A と B は そ れ ぞ れ 10 進 数 の 定 数 か 、 上 記 の よ う に 解 釈 さ れ る 文 字 1 つ で あ る 。 こ の 形 式 指 定 は A の 値 が B と 等 し け れ ば T と 等 価 で あ り 、 そ れ 以 外 の 場 合 は E と 等 価 で あ る 。 例 え ば ’%(N=0?no:%dN) line%(N=1?:s)’ は N (new フ ァ イ ル か ら の グ ル ー プ の 行 数 ) が 0 な ら ’no lines’ と な り 、 N が 1 な ら ’1 line’ と な り 、 そ れ 以 外 の 場 合 は ’%dN lines’ と な る 。
FN こ こ で
F は printf(3) の 変 換 指 定 で 、 N は 以 下 の 文 字 の ど れ か で あ
る 。 「 F で 整 形 さ れ た N の 値 」 を 表 す 。
e
old フ ァ イ ル か ら の グ ル ー プ の 直 前 の 行 の 行 番 号 。
f
old フ ァ イ ル か ら の グ ル ー プ の 最 初 の 行 番 号 。 e + 1 に 等 し い 。
l
old フ ァ イ ル か ら の グ ル ー プ の 末 尾 の 行 番 号 。
m
old フ ァ イ ル か ら の グ ル ー プ の 直 後 の 行 の 行 番 号 。 l + 1 に 等 し い 。
n
old フ ァ イ ル か ら の グ ル ー プ の 行 数 。 l - f + 1 に 等 し い 。
E, F, L, M, N 上 記 と 同 様 の new フ ァ イ ル か ら の グ ル ー プ の も の 。
printf 変 換 指 定 に は %d, %o, %x, %X (そ れ ぞ れ 10 進 , 8 進 , 小 文 字 16 進 , 大 文 字 16 進 ) が 使 え る 。 ’%’ の 後 に は 以 下 の オ プ シ ョ ン を 順 に 指 定 で き る 。 ’-’ (左 詰 め の 指 定 )、 整 数 (フ ィ ー ル ド の 最 低 幅 )、 ピ リ オ ド と 数 値 (数 値 は 省 略 可 ; 桁 数 の 最 小 値 ) で あ る 。 例 え ば ’%5dN’ は new フ ァ イ ル か ら の グ ル ー プ の 行 数 を 、 5 文 字 幅 の フ ィ ー ル ド に 、 printf の "%5d" 書 式 を 用 い て 表 示 す る 。 行 形 式 行 形 式 は 、 入 力 か ら 取 得 さ れ た 各 行 を if-then-else 形 式 の 行 グ ル ー プ と し て 出 力 さ れ る 際 の 制 御 を 行 う 。 例 え ば 、 以 下 の コ マ ン ド は 、 テ キ ス ト の 左 に 変 更 表 示 の 1 文 字 を 表 示 し て テ キ ス ト を 出 力 す る 。 出 力 の 最 初 の 桁 は 、 削 除 行 で は ’-’、 追 加 行 で は ’|’ と な り 、 変 更 さ れ な か っ た 行 で は ス ペ ー ス と な る 。 こ の 形 式 で は 、 改 行 が 必 要 な 部 分 に は 改 行 を 入 れ て 出 力 す る 。
diff \
--old-line-format=’-%l
’ \
--new-line-format=’|%l
’ \
--unchanged-line-format=’ %l
’ \
old new 行 形 式 を 指
定 す る に は 、
以 下 の オ プ シ
ョ ン の ど れ か
を 用 い る 。 FORMAT
に は シ ェ ル の
メ タ キ ャ ラ ク
タ が 入 っ て い
る こ と が 多 い
の で 、 ク ォ ー
ト す る べ き で
あ ろ う 。
−−old-line-format=FORMAT
1 番 目 の フ ァ イ ル か ら の 行 だ け を 整 形 す る 。
−−new−line−format=FORMAT
2 番 目 の フ ァ イ ル か ら の 行 だ け を 整 形 す る 。
−−unchanged−line−format=FORMAT
両 方 の フ ァ イ
ル に 共 通 の 行
を 整 形 す る 。
−−line−format=FORMAT 全
て の 行 を 整 形
す る 。 上 記 の
全 て の オ プ シ
ョ ン を 指 定 し
た 場 合 に 等 し
い 。 行 形 式 で
は 、 普 通 の 文
字 は そ れ 自 身
を 表 す 。 変 換
指 定 は ’%’ で
始 ま り 、 以 下
の 形 式 を と る :
%l 行 の 内 容 を 意 味 す る 。 行 末 尾 の 改 行 は あ っ て も 含 ま な い 。 こ の 形 式 で は 、 行 に 改 行 が あ る か ど う か は 無 視 さ れ る 。
%L 行 の 内 容 を 意 味 す る 。 行 末 尾 の 改 行 が あ れ ば そ れ も 含 む 。 行 に 改 行 が な け れ ば 、 改 行 は な い ま ま に な る 。
%%
’%’ を 表 す 。
%c’C’’ こ こ で
C は 文 字 1 文 字 で 、 C を 表 す 。 C に バ ッ ク ス ラ ッ シ ュ や ア ポ
ス ト ロ フ ィ は 指 定 で き な い 。 例 え ば ’%c’:’’ は コ ロ ン を 表 し 、 こ れ は if-then-else 形 式 の then 部 分 で も コ ロ ン と し て 解 釈 さ れ る 。 通 常 は コ ロ ン は then 部 分 の 終 わ り と し て 扱 わ れ る 。
%c’\O’’ こ こ で 0 は 1 桁 か ら 3 桁 ま で の 8 進 数 字 で あ り 、 8 進 の コ ー ド 0 に 対 応 す る 文 字 を 表 す 。 例 え ば ’%c’0円’’ は ナ ル 文 字 に な る 。
Fn こ こ で
F は printf(3) の 変 換 指 定 で 、 F に よ り 整 形 さ れ た 行 番 号 を
表 す 。 例 え ば ’%.5dN’ は 行 番 号 を ’%.5d’ と い う 書 式 で 整 形 し て 表 示 す る 。 printf 変 換 指 定 の 詳 細 は 、 上 記 の 行 グ ル ー プ 形 式 の サ ブ セ ク シ ョ ン を 見 よ 。 デ フ ォ ル ト の 行 形 式 は ’%l’ に 改 行 文 字 を 続 け た も の で あ る 。 入 力 に タ ブ 文 字 が あ り 、 そ れ が 出 力 行 の 桁 揃 え に 重 要 で あ る 場 合 に は 、 ’%l’ や ’%L’ の 行 指 定 を タ ブ ス ト ッ プ の 直 後 に 置 く と よ い (す な わ ち ’%l’ や ’%L’ の 前 に タ ブ 文 字 を 置 け ば よ い )。 あ る い は −t オ プ シ ョ ン を 用 い る の も よ い だ ろ う 。 行 形 式 と 行 グ ル ー プ 形 式 を 同 時 に 用 い る と 、 様 々 な 形 式 指 定 が 可 能 と な る 。 例 え ば 、 以 下 の コ マ ン ド は diff の 通 常 の 形 式 と 似 た 形 式 の 指 定 で あ る 。 こ れ を 修 正 す れ ば 、 diff の 出 力 を 微 調 整 す る こ と が 可 能 に な る 。
diff \
--old-line-format=’< %l
’ \
--new-line-format=’> %l
’ \
--old-group-format=’%df%(f=l?:,%dl)d%dE
%<’ \
--new-group-format=’%dea%dF%(F=L?:,%dL)
%>’ \
--changed-group-format=’%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
%<---
%>’ \
--unchanged-group-format=’’ \
old new
デ ィ レ ク ト リ の 比 較
diff へ の 2 つ の 引 数 が デ ィ レ ク ト リ だ っ た 場 合 、 両 方 の デ ィ レ ク ト リ に そ れ ぞ れ の フ ァ イ ル が 、 フ ァ イ ル 名 の ア ル フ ァ ベ ッ ト 順 に 比 較 さ れ る 。 通 常 は フ ァ イ ル の ペ ア に 違 い が 全 く な け れ ば 、 何 も 出 力 し な い 。 し か し −s オ プ シ ョ ン を 用 い る と 、 同 一 の フ ァ イ ル も 報 告 す る 。 両 方 の デ ィ レ ク ト リ に 同 名 の サ ブ デ ィ レ ク ト リ が あ る と 、 通 常 diff は 報 告 だ け し て サ ブ デ ィ レ ク ト リ 以 下 の フ ァ イ ル は 比 較 し な い 。 し か し −r オ プ シ ョ ン を 用 い る と 、 デ ィ レ ク ト リ ツ リ ー を 辿 れ る 限 り 、 対 応 す る 全 て の フ ァ イ ル を 比 較 す る 。 片 方 の デ ィ レ ク ト リ だ け に あ る フ ァ イ ル に 対 し て は 、 diff は 通 常 存 在 す る フ ァ イ ル の 内 容 を 表 示 せ ず 、 フ ァ イ ル が 片 方 に あ っ て 他 方 に は な い こ と だ け を 報 告 す る 。 diff の 振 舞 い を 変 え て 、 他 方 の デ ィ レ ク ト リ に も フ ァ イ ル が 空 の 状 態 で 存 在 す る か の よ う に 動 作 さ せ る こ と も で き る 。 す な わ ち diff は 実 際 に 存 在 す る フ ァ イ ル の 内 容 を す べ て 出 力 す る 。 (こ の 出 力 は 、 フ ァ イ ル が 第 1 デ ィ レ ク ト リ に あ れ ば 削 除 、 第 2 デ ィ レ ク ト リ に あ れ ば 挿 入 と な る 。 ) こ の 指 定 に は −N オ プ シ ョ ン を 使 う 。 古 い ほ う の デ ィ レ ク ト リ に 大 き な フ ァ イ ル が あ っ て 、 新 し い ほ う に は な い 場 合 、 −N オ プ シ ョ ン の 代 わ り に −P オ プ シ ョ ン を 用 い る と パ ッ チ の 大 き さ を 小 さ く で き る 。 −P オ プ シ ョ ン は −N オ プ シ ョ ン と 似 て い る が 、 第 2 デ ィ レ ク ト リ に あ る フ ァ イ ル の 内 容 だ け を 出 力 に 挿 入 し 、 第 1 デ ィ レ ク ト リ だ け に あ る フ ァ イ ル は 無 視 す る (す な わ ち 、 追 加 さ れ た フ ァ イ ル だ け を 扱 う )。 そ し て 、 パ ッ チ を 当 て る 前 に 消 去 さ れ た フ ァ イ ル を 削 除 す る よ う 、 パ ッ チ の 先 頭 に パ ッ チ を 当 て る ユ ー ザ ー へ の 指 示 を 書 く 。 デ ィ レ ク ト リ の 比 較 時 に 特 定 の フ ァ イ ル を 無 視 さ せ る に は 、 −x PATTERN オ プ シ ョ ン を 用 い る 。 シ ェ ル と は 異 な り 、 フ ァ イ ル 名 の 先 頭 の ピ リ オ ド は 、 パ タ ー ン 先 頭 の ワ イ ル ド カ ー ド に マ ッ チ す る 。 シ ェ ル に よ っ て 展 開 さ れ な い よ う 、 PATTERN は ク ォ ー ト 記 号 で 囲 う べ き で あ る 。 例 え ば ’−x ’*.[ao]’’ は ’.a’ や ’.o’ で 終 わ る 名 前 の フ ァ イ ル を す べ て 無 視 す る 。 こ の オ プ シ ョ ン は 、 複 数 指 定 す る と そ れ ぞ れ が 有 効 に な る 。 例 え ば ’−x ’RCS’ −x ’*,v’’ と い う オ プ シ ョ ン を 指 定 す る と 、 フ ァ イ ル 名 が ’RCS’ だ っ た り ’*,v’ で 終 わ る よ う な フ ァ イ ル と サ ブ デ ィ レ ク ト リ を す べ て 無 視 す る 。
返 り 値
diff は 以 下 の 値 の ど れ か で 終 了 す る :
0 全 く 変 更 が な か っ た 。
1 変 更 が あ っ た 。
2 何 ら か の エ ラ ー が 起 こ っ た 。
関 連 項 目
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1)
注 意
プ ロ グ ラ ム の バ グ に つ い て は bug-gnu-utils [AT] gnu.org へ 報 告 し て く だ さ い 。 ペ ー ジ の 更 新 は Ragnar Hojland Espinosa <ragnar [AT] ragnar-hojland.com> が 行 っ て い ま す 。