diff3 命令

用途

比较三个文件。

语法

diff3 [ -e | -x | -E | -X | -3 ] File1 File2 File3

描述

diff3 命令比较三个文件,并将不同文本的范围写到标准输出,以下列代码为标志:

描述
==== 三个文件都不同。
== 1 File1 不同。
== 2 File2 不同。
== 3 File3 不同。

需要用以将给定文件的指定范围转换以匹配另一文件的更改类型,在输出中由以下 2 种方式之一指明:

描述
文件:Number1 a 文本添加到 File 中的行号 Number1 后,其中 File 可以是 123
文件:Number1[Number2]c Number1 行与第 Number2 行之间的文本将被更改。 如果 Number1Number2 相等,范围减缩为第 Number1 行。

相应范围的内容在 c 指示之后。 当两文件内容相同时,命令 diff3 不显示较小编号文件的内容,虽然它显示相同行的位置。

注:-e 标志生成的编辑脚本不能创建由 a 组成的行。 :NONE.

标志

描述
-3 建立只合并标志为 ====3 的修改的编辑脚本。
-E, -X 它们分别类似于 -e-x ,但以不同方式处理重叠更改 (即,将在正常列表中标记为 == == 的更改)。 编辑脚本插入了两个文件中的重叠行,并用 <<<<<< 和 >>>>>> 行括起来。 -E 选项用于修订控件系统 (RCS) 合并,使得合并文件中的重叠修改受到保留并引起注意。
-e 建立和 ed 命令一起使用的编辑脚本,将所有修改合并到 File1,即 File2File3 之间的修改(正常情况下标记为 ==== 和 ====3 的修改处)。
-x 建立只合并标记为 ==== 的修改的编辑脚本。

示例

列举三个文件的不同处:

diff3 fruit.a fruit.b fruit.c

如果fruit.a,fruit.bfruit.c包含以下数据:

fruit.a                fruit.b                 fruit.c
banana                 apple                   grape
grape                  banana                  grapefruit
kiwi                   grapefruit              kiwi
lemon                  kiwi                    lemon
mango                  orange                  mango
orange                 peach                   orange
peach                  pear                    peach
pare

然后 diff3 命令的输出显示了这些文件的差异,如下所示。 (右边的注释不会出现在输出中。)

====            All three files are different.
1:1,2c          Lines 1 and 2 of the first file, fruit.a
  banana
  grape
2:1,3c          Lines 1 through 3 of fruit.b
  apple
  banana
  grapefruit
3:1,2c          Lines 1 and 2 of fruit.c
  grape
  grapefruit
====2           The second file, fruit.b, is different.
1:4,5c          Lines 4 and 5 the same in fruit.a and fruit.c.
2:4a            To make fruit.b look same, add after line 4.
3:4,5c
  lemon
  mango
====            The first file, fruit.a, is different.
1:8c
  pare
2:7c            fruit.b line 7 and fruit.c line 8 are the same
  pear
3:7a

文件

描述
/usr/bin/diff3 指示 diff3 命令。
/usr/lbin/diff3prog diff3 shell 脚本调用。