📜  Linux 中的 diff3 命令及示例

📅  最后修改于: 2022-05-13 01:57:29.752000             🧑  作者: Mango

Linux 中的 diff3 命令及示例

diff3命令用于逐行比较三个文件。它在内部使用 diff 命令进行比较。当比较三个文件时,可能会出现以下输出,它们具有各自的含义:

  • ==== :这意味着所有文件都不同。
  • ====1 :文件 1 不同。
  • ====2 :文件 2 不同。
  • ====3 :文件 3 不同。

句法:

diff3 [OPTIONS]

示例:让我们考虑三个文件a.txtb.txtc.txt

现在,如果在这三个文件上使用 diff3 命令,则会出现以下输出:



在这里,第一行 ' ====3 ' 表明文件编号 3 iectxt 与其他两个不同。这在输出中也可见。

选项:

  • “c”表示更改,而“a”表示附加:“c”表示行/文本中需要的“更改”。如果出现字母“a”,则表示需要附加一行。

    例子:

    现在,如果在这三个文件上使用 diff3 命令:

    上面的输出表示需要将 file3(即c.txt )中的更改附加到 file1( a.txt )和 file2( b.txt )中,以使所有三个文件相似。或者,可以更改 b.txt 中的第二行 (c) 以使所有三个文件相似。



  • -x :它仅生成三个文件不同的那些更改的编辑器脚本。

    例子:

    应用 diff3 -x

    输出表示 a.txt的第三行必须更改为 ' mahi ' 以合并将b.txt变为c.txt的更改。

  • diff3 -X :它与 -x 类似,除了它还检查更改中行的重叠范围。 diff3在输出中突出显示这些范围。

    例子:

    应用 diff3 -X

  • diff3 -e :可用于将b.txtc.txt 的非合并更改输出到a.txt

    例子:



    应用 diff3 -e

    所以我们看到输出显示了未合并的更改。

  • diff3 -E :它还检查更改中行的重叠范围。 diff3 在输出中突出显示这些范围。

    例子:

    应用 diff3 -E

  • diff3 -m :可以使用 -m选项生成包含所有三个文件内容的合并文件。

    例子:

    应用 diff3 -m

    因此,上面的输出显示了合并文件的内容,该文件合并了作为参数提供给diff3 的所有三个文件的内容。

  • diff3 '-' :使用 '-' 接受来自标准输入的一个参数。可以使用“-”代替任何一个文件名,以接受来自该参数的stdin 输入。

    例子:

    输出:

    我们可以看到,当上面的命令运行时,第三个文件的内容是通过 stdin 给出的。注意,从stdin输入文件内容后,需要按组合键ctrl+d才能得到diff3的输出。

  • diff3 -a :要比较非文本文件,可以使用选项 -a 告诉 diff3 将所有输入文件视为文本文件。

    例子:

    因此,上面的输出显示 diff3 甚至尝试比较将其视为文本文件的 odt 文件。