Linux 中的 diff3 命令及示例
diff3命令用于逐行比较三个文件。它在内部使用 diff 命令进行比较。当比较三个文件时,可能会出现以下输出,它们具有各自的含义:
- ==== :这意味着所有文件都不同。
- ====1 :文件 1 不同。
- ====2 :文件 2 不同。
- ====3 :文件 3 不同。
句法:
diff3 [OPTIONS]
示例:让我们考虑三个文件a.txt 、 b.txt和c.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.txt到c.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 文件。