当前位置:网站首页 > 云服务教程 > 正文

awvs使用教程无标识(awvs13使用教程)



  • diff3 能够检测三个文本文件之间的差异,从而帮助识别编辑内容、文件版本以及合并更改操作。
  • 差异以带有行号和文件指示符的块形式显示,以便于轻松识别差异。
  • diff3 能够合并三个文件的内容,同时突出显示冲突,以供手动解决。

Linux 的 diff3 命令检测三个文本文件之间的差异。这有助于您识别版本、了解它们的差异并合并更改。diff3 对于源代码、脚本或任何纯文本文件非常有用。

什么是差异?

差异是在一组文件上运行差异工具所产生的结果。生成的输出包含每个文件内的差异列表。通过行号和差异所在的文件来识别差异。正如您可能预期的那样,diff3 从三个文件创建差异。

软件版本控制(SVC)包,例如 Git,将差异视为自身的一部分,并且做得极为出色。如果您使用 Git 或其他 SVC 来比较文件,您应该继续这样做。

不只是开发人员能够利用差异。如果您有任何基于文本的材料,不同的草稿存储在不同的文件中,您可能会发现差异很有帮助。

diff3 命令使比较三个文件的难题变得易于管理。

diff3 有何不同

diff3 把三个文件名当作参数。依照惯例,它们被称作我的、较旧的和您的,不过它们可以被赋予任何名称。我的、较旧的和您的模型假设一个较旧的祖先文件和两个修改后的派生文件。

这是一个简单的示例。

这是 my-file.txt。

第一行

第二行

编辑的第三行

这是 old-file.txt。

第一行

第二行

第三行

这是 your-file.txt。

第一行

第二行

更改的第三行

我们可以通过在命令行上按顺序列出文件来执行三路差异。

diff3 my-file .txt old-file .txt your-file .txt


diff3 报告每个文件的第三行不同。

diff3 输出格式

差异以块显示。一个块以====和一个可选的数字起始,表示差异来自于哪个文件。数字是文件在命令行上的位置。没有数字意味着所有三个文件都不同。

这是一个示例。文件 older.txt 和 yours.txt 包含这些行。

第 1 行

第 2 行

第 3 行

文件 mine.txt 包含经修改的第一行。

我的文件中的第 1 行

第 2 行

第 3 行

这里是 diff3 命令。

diff3 mine .txt older .txt yours .txt


====1 这个分隔符表示文件 1,也就是 mine.txt。

1: 表示文件一。1c 表示若要与旧文件中的同一行相匹配,就需要更改第一行。这一行将会显示出来。

来自文件二和文件三的相应行将会显示。由于它们彼此包含相同的文本,所以只列出一次,不过标识了两次。

堆叠的 2:1c 和 3:1c 意味着该行同时出现在两个文件里,在它们下方会显示该行。

让咱们把 mine.txt 和 yours.txt 变得相同,就用这个文本。

第 1 行

第 2 行

第 3 行

older.txt 文件存在修改后的第二行。

第 1 行

旧文件 第 2 行

第 3 行

我们尚未更改文件名,因此可以再次运行相同的命令。

diff3 mine .txt older .txt yours .txt


分隔符====2 末尾的 2 表明此块中的差异在文件二里。

让我们再次修改文件二,并添加一行不在其他文件中的行。

第 1 行

旧文件中的第 2 行

第 3 行

第 4 行

我们可以使用相同的命令。

diff3 mine .txt older .txt yours .txt


这次,我们有两个块。这两个分隔符均指向文件二的差异。

第一个块表明,文件一和文件三中的第二行需要做出更改,从而与文件二中的同一行相匹配。或者,文件二中的第二行需要更改以匹配其他两个文件。

第二个块带来了新的信息。older.txt 文件有第四行。1:3a 和 3:3a 告诉我们,在文件一和文件三中,必须在第三行之后添加一个新行,来与文件二相匹配。该行显示在它们下面。

diff3 可以显示的另一件事是包含差异的行序列。

让我们将 mine.txt 和 older.txt 变得相同,内容如下。

第 1 行

第 2 行

第 3 行

我们将更改 yours.txt 中的两行

第 1 行

你的 第 2 行

你的 第 3 行

我们将运行相同的命令。

diff3 mine .txt older .txt yours .txt


这次,行指示器不使用单个行号。它们有两个用逗号','分隔的行号来表示一系列行。例如,1:2,3c 告诉我们在文件 1 中,第二行到第三行有差异。

用 diff3 合并

我们可以要求 diff3 把文件的内容和差异合并到一个文件里,而非让 diff3 列出差异。它实际上是将文件三与文件二之间的差异滚动到文件一中。

如果幸运的话,您的文件将无冲突地合并。有时文件中的同一位置有更改,导致冲突。冲突会突出显示,因此您可以选择要保留的行集。

输出被写入终端窗口,但您可以轻松地将其重定向到一个文件中,然后编辑该文件进行审查。

这是一个简单的例子。这是 mine.txt 的内容。

我们将

运行 diff3

针对这几个文件。

太棒了!

这是 older.txt 中的内容。

我们将

运行 diff3

针对这几个文件。

yours.txt 文件包含的是这个。

我们将

运行 diff3 命令

针对这几个文件。

我们将使用熟悉的命令进行差异比较,然后使用 -m(合并)选项再次运行以执行合并。

diff3mine.txtolder.txtyours.txt

diff3-mmine.txtolder.txtyours.txt


这把 older.txt 和 yours.txt 之间的差异合并到 mine.txt 中,从而创建出一个新的第四个版本。要捕获此输出,请将重定向添加到命令中。

diff3 -m mine .txt older .txt yours .txt > fourth .txt

遗憾的是,您这样顺利的合并情况很少见。这是一个更复杂的示例。相同的行在几个文件中都有更改。

这是我们新的 mine.txt 文件

金翅雀

燕子

鸽子

麻雀

五子雀

这是我们新的“older.txt”

苍头燕雀

燕子

鸽子

五子雀

最后,我们新的“yours.txt”。

苍头燕雀

杜鹃

白嘴鸦

五子雀

啄木鸟

金翅雀

这是差异的结果。

diff3 我的 .txt 较旧的 .txt 你的 .txt


这三个文件都有变化,而且其中一个文件还有额外的行。我们会进行合并,并把输出重定向到一个新文件。

diff3 -m 我的 .txt 较旧的 .txt 你的 .txt > 新文件 .txt


使用您喜欢的编辑器,打开该文件。

gedit 新-文件.txt


在两个分隔符‘<<<<<<<<<’和‘>>>>>>>>>’之间的部分存在冲突。

每个文件的冲突行依次显示。来自文件一的行在<<<<<<<<< 和 ||||||| 之间,来自文件二的行在 ||||||| 和 ======= 之间,来自文件三的行在 ======= 和 >>>>>>>>> 之间。

在实际的文件中,您可能有几个冲突区域需要审查和编辑,以使它们包含您想要保留的部分的文本。

差异与冲突

人们往往很容易忘记针对文件的不同版本所做出的更改。diff3 命令能够轻松地找出这些差异。合并相较于比较差异,需要更多的人为交互操作,但至少 diff3 使得冲突难以被遗漏。

到此这篇awvs使用教程无标识(awvs13使用教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • msp432单片机(msp430单片机教程)2024-12-22 13:18:09
  • awvs安装教程(awvs12安装教程)2024-12-22 13:18:09
  • 动态库存表视频教程(动态库存表视频教程图片)2024-12-22 13:18:09
  • 单片机编写程序的步骤视频(单片机编写程序的步骤视频教程)2024-12-22 13:18:09
  • xmouse使用教程(xmouse设置)2024-12-22 13:18:09
  • linuxyum怎么安装(linux安装geany教程)2024-12-22 13:18:09
  • gmock教程(gmock invoke)2024-12-22 13:18:09
  • webflux使用教程(webflux太难用了)2024-12-22 13:18:09
  • ubuntu安装cmake教程(ubuntu怎么安装make)2024-12-22 13:18:09
  • 如何安装虚拟机win11(如何安装虚拟机win10系统教程)2024-12-22 13:18:09
  • 全屏图片