在 Linux 中创建两个文件之间的差异
本文将列出有用的命令行实用程序和图形应用程序,它们允许您查看两个字符串或两个文件之间的“差异”或“差异”。如果您想要比较同一文件的多个版本以查看其进度或恢复到旧内容(以防您想要重用文件中存储的先前数据),这些应用程序特别有用。使用某种版本控制系统的软件开发人员经常使用 diff 工具来比较代码。
查询命令
Grep 是一个命令行工具,最常用于使用模式查找和匹配文本内容。您可以通过多种方式使用 Grep 模式来解析文本数据并获取匹配项。一种这样的 Grep 模式允许您查看两个文件之间的差异。假设有两个文件“file1”每行包含 1 到 5 个数字,“file2”每行包含 1 到 10 个数字,可以使用以下 grep 命令查看这些文件之间的差异:
运行上述命令后,您应该得到以下输出:
678910
上面命令中的“F”开关将文本数据视为固定字符串列表,每个字符串都由换行符或新行分隔。 “x”开关仅匹配整行。 “v”开关用于获得反向匹配。您可以使用它来选择不匹配的行。 “f”开关用于从文件中获取模式,每个模式都是一个新行。请注意,当您使用上述 diff 命令时,参数的顺序很重要。它查找“file2”中存在但“file1”中不存在的那些行。尝试通过颠倒文件顺序来运行以下命令,您将不会得到任何输出:
这是因为“file1”没有任何与“file2”不同的行。所有主要 Linux 发行版默认都提供 Grep 命令。有关 Grep 命令的更多信息,请使用以下两个命令:
$ grep --help
差异命令
Diff 是一个命令行实用程序,可用于逐行比较文件。其输出提示需要添加或删除的行以使两个文件相互匹配。使用上面示例中提到的相同文件,运行以下命令:
您应该得到以下输出:
6,10d5< 6< 7< 8< 9< 10
输出告诉您,为了将“file2”与 file1 匹配,您需要删除(“d”)从第 6 行到第 10 行开始的所有行,以匹配第二个文件到第一个文件的第 5 行。尝试反转命令:
您应该得到以下输出:
5a6,10> 6> 7> 8> 9> 10
输出告诉您,在第 5 行之后,将 (“a”) 6 到 10 行添加到“file1”以将其与“file2”匹配。您还可以使用“y”开关进行并排比较。
Diff 命令在大多数 Linux 发行版中默认可用。要了解更多信息,您可以运行以下两个命令:
$ diff --help
梅尔德
Meld 是一个图形应用程序,可用于查找两个或多个文件之间的差异并同时合并更改。它还可用于递归比较目录中的文件,包括版本控制下的文件夹。 Meld 直观地指示需要进行哪些更改才能匹配正在比较的两个文件。当您继续编辑一个或两个文件时,它还可以显示实时差异。
要在 Ubuntu 中安装 Meld,请使用以下指定的命令:
Meld 在大多数 Linux 发行版的默认存储库中都可用,因此您可以从包管理器下载它。您还可以从其主页获取更多软件包和源代码。
孔帕雷
Kompare 是一个免费的开源应用程序,可用于在两个文件之间创建差异并合并更改以匹配其内容。由 KDE 团队开发,它还可以用于递归解析目录以比较文件之间的差异。 Kompare 直观地指示两个文件之间的差异,您还可以使用它来创建和应用补丁。
要在 Ubuntu 中安装 Kompare,请使用以下指定的命令:
Kompare 在大多数 Linux 发行版的默认存储库中都可用,因此您可以从包管理器下载它。您可以从其网页获取更多软件包和源代码。此处还提供了快照包。
Git 差异命令
Git 是最广泛使用和流行的分布式版本控制系统之一。它附带了许多命令行实用程序,包括可用于比较两个文件的“diff”命令。即使您不使用 Git 版本控制,也可以使用此命令广泛比较两个文件,并且它附带大量命令行选项来调整 diff 算法的行为。最简单的形式是,您可以运行以下命令来比较两个文件:
带“+”号的彩色输出显示“file2”中可用的其他行。要在 Ubuntu 中安装 Git 和 Git Diff,请使用下面指定的命令:
Git Diff 是 Git 软件包的一部分,大多数 Linux 发行版的默认存储库中都提供了它,因此您可以从软件包管理器下载它。有关 Git Diff 的更多信息,请使用以下两个命令:
$ git diff --help
KDiff3
Kdiff3 是 KDE 团队创建的另一个 GUI diff 工具。它配备了您所期望的 diff 工具的所有功能。它可以比较文件和目录,并自动合并更改(如果选择)。它还配备了一个内置编辑器,它直观地指示需要进行哪些更改来匹配文件并消除差异。
(图片来源)
要在 Ubuntu 中安装 KDiff3,请使用以下指定的命令:
KDiff3 在大多数 Linux 发行版的默认存储库中都可用,因此您可以从包管理器下载它。您可以从其网页获取更多软件包和源代码。
结论
这些是一些最有用的命令行和图形实用程序,可用于比较多个文件。这些差异工具提供了一种跟踪文件更改、合并差异和创建补丁的好方法。如果需要,您还可以使用它们手动将文件恢复到早期状态。