用途
比較三個檔案。
語法
diff3 [ -e | -x | -E | -X | -3 ] File1 File2 File3
描述
diff3 命令比較三個檔案,並將不同文本的範圍寫到標準輸出,以下列代碼為標記:
====三個檔案都不同。
====1File1 不同。
====2File2 不同。
====3File3 不同。
需要用以將給定檔案的指定範圍轉換以匹配另一檔案的更改類型,在輸出中由下列 2 種方式之一指明:
File:Number1 a文本添加到 File 中的行號 Number1 後,其中 File 可以是 1、2 或 3。
File:Number1[,Number2]c第 Number1 行與第 Number2 行之間的文本將被更改。如果 Number1 同 Number2 相等,範圍減縮為第 Number1 行。
相應範圍的內容在 c 指示之後。當兩檔案內容相同時,命令 diff3 不顯示較小編號檔案的內容,雖然它顯示相同行的位置。
註: -e 標誌所產生的編輯腳本無法創建由 a 組成的行。
標誌
-3建立只合併標誌為 ====3 的修改的編輯腳本。
-E, -X這些分別類似於 -e 和 -x 標誌,但是對重疊修改(就是在正常列表中被標記為 ==== 的修改處)的處理不同。兩檔案的重疊行被編輯腳本插入,並由<<<<<< 和 >>>>>> 行括起來。-E 選項用於修訂控制項系統(RCS)合併,使得合併檔案中的重疊修改受到保留並引起注意。
-e建立和 ed 命令一起使用的編輯腳本,把所有修改合併到 File1,即 File2 和 File3 之間的修改(就是正常情況下標記為 ==== 和 ====3 的修改處)。
-x建立只合併標記為 ==== 的修改的編輯腳本。
示例
列舉三個檔案的不同處:
diff3 fruit.a fruit.b fruit.c
如果檔案 fruit.a、fruit.b 和 fruit.c 包含以下數據:
fruit.a fruit.bfruit.c
bananaapple grape
grape banana grapefruit
kiwi grapefruit kiwi
lemon kiwi lemon
mango orange mango
orangepeach orange
peach pear peach
pare
然後 diff3 命令的輸出顯示了這些檔案的差異,如下所示。(右邊的注釋不會出現在輸出中。)
==== 3 個檔案都不同。1:1,2c 第一個檔案 fruit.a 的 1、2 行
banana
grape
2:1,3c fruit.b 的第 1 到 3 行
apple
banana
grapefruit
3:1,2c 檔案 fruit.c 的第 1、2 行
grape
grapefruit
====2 第 2 個檔案 fruit.b 的不同處。
1:4,5c 檔案 fruit.a 和 fruit.c 第 4、5 行相同。
2:4a 為使檔案 fruit.b 看起來相同,在第 4 行後添加。
3:4,5c
lemon
mango
==== 第一個檔案 fruit.a 的不同處。1:8c
pare
2:7c fruit.b 的第 7 行和 fruit.c 的第 8 行相同
pear
3:7a
檔案
/usr/bin/diff3指示 diff3 命令。
/usr/lbin/diff3prog被 diff3 shell 腳本調用。