在 Linux 中创建两个文件之间的差异在 Linux 中创建两个文件之间的差异在 Linux 中创建两个文件之间的差异在 Linux 中创建两个文件之间的差异
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Linux 中创建两个文件之间的差异

本文将列出有用的命令行实用程序和图形应用程序,它们允许您查看两个字符串或两个文件之间的“差异”或“差异”。如果您想要比较同一文件的多个版本以查看其进度或恢复到旧内容(以防您想要重用文件中存储的先前数据),这些应用程序特别有用。使用某种版本控制系统的软件开发人员经常使用 diff 工具来比较代码。

查询命令

Grep 是一个命令行工具,最常用于使用模式查找和匹配文本内容。您可以通过多种方式使用 Grep 模式来解析文本数据并获取匹配项。一种这样的 Grep 模式允许您查看两个文件之间的差异。假设有两个文件“file1”每行包含 1 到 5 个数字,“file2”每行包含 1 到 10 个数字,可以使用以下 grep 命令查看这些文件之间的差异:

$ grep -Fxvf file1 file2

运行上述命令后,您应该得到以下输出:

678910

上面命令中的“F”开关将文本数据视为固定字符串列表,每个字符串都由换行符或新行分隔。 “x”开关仅匹配整行。 “v”开关用于获得反向匹配。您可以使用它来选择不匹配的行。 “f”开关用于从文件中获取模式,每个模式都是一个新行。请注意,当您使用上述 diff 命令时,参数的顺序很重要。它查找“file2”中存在但“file1”中不存在的那些行。尝试通过颠倒文件顺序来运行以下命令,您将不会得到任何输出:

$ grep -Fxvf file2 file1

这是因为“file1”没有任何与“file2”不同的行。所有主要 Linux 发行版默认都提供 Grep 命令。有关 Grep 命令的更多信息,请使用以下两个命令:

$ man grep
$ grep --help

差异命令

Diff 是一个命令行实用程序,可用于逐行比较文件。其输出提示需要添加或删除的行以使两个文件相互匹配。使用上面示例中提到的相同文件,运行以下命令:

$ diff file2 file1

您应该得到以下输出:

6,10d5< 6< 7< 8< 9< 10

输出告诉您,为了将“file2”与 file1 匹配,您需要删除(“d”)从第 6 行到第 10 行开始的所有行,以匹配第二个文件到第一个文件的第 5 行。尝试反转命令:

$ diff file1 file2

您应该得到以下输出:

5a6,10> 6> 7> 8> 9> 10

输出告诉您,在第 5 行之后,将 (“a”) 6 到 10 行添加到“file1”以将其与“file2”匹配。您还可以使用“y”开关进行并排比较。

Diff 命令在大多数 Linux 发行版中默认可用。要了解更多信息,您可以运行以下两个命令:

$ man diff
$ diff --help

梅尔德

Meld 是一个图形应用程序,可用于查找两个或多个文件之间的差异并同时合并更改。它还可用于递归比较目录中的文件,包括版本控制下的文件夹。 Meld 直观地指示需要进行哪些更改才能匹配正在比较的两个文件。当您继续编辑一个或两个文件时,它还可以显示实时差异。

要在 Ubuntu 中安装 Meld,请使用以下指定的命令:

$ sudo apt install meld

Meld 在大多数 Linux 发行版的默认存储库中都可用,因此您可以从包管理器下载它。您还可以从其主页获取更多软件包和源代码。

孔帕雷

Kompare 是一个免费的开源应用程序,可用于在两个文件之间创建差异并合并更改以匹配其内容。由 KDE 团队开发,它还可以用于递归解析目录以比较文件之间的差异。 Kompare 直观地指示两个文件之间的差异,您还可以使用它来创建和应用补丁。

要在 Ubuntu 中安装 Kompare,请使用以下指定的命令:

$ sudo apt install kompare

Kompare 在大多数 Linux 发行版的默认存储库中都可用,因此您可以从包管理器下载它。您可以从其网页获取更多软件包和源代码。此处还提供了快照包。

Git 差异命令

Git 是最广泛使用和流行的分布式版本控制系统之一。它附带了许多命令行实用程序,包括可用于比较两个文件的“diff”命令。即使您不使用 Git 版本控制,也可以使用此命令广泛比较两个文件,并且它附带大量命令行选项来调整 diff 算法的行为。最简单的形式是,您可以运行以下命令来比较两个文件:

$ git diff file1 file2

带“+”号的彩色输出显示“file2”中可用的其他行。要在 Ubuntu 中安装 Git 和 Git Diff,请使用下面指定的命令:

$ sudo apt install git

Git Diff 是 Git 软件包的一部分,大多数 Linux 发行版的默认存储库中都提供了它,因此您可以从软件包管理器下载它。有关 Git Diff 的更多信息,请使用以下两个命令:

$ man git diff
$ git diff --help

KDiff3

Kdiff3 是 KDE 团队创建的另一个 GUI diff 工具。它配备了您所期望的 diff 工具的所有功能。它可以比较文件和目录,并自动合并更改(如果选择)。它还配备了一个内置编辑器,它直观地指示需要进行哪些更改来匹配文件并消除差异。

(图片来源)

要在 Ubuntu 中安装 KDiff3,请使用以下指定的命令:

$ sudo apt install kdiff3

KDiff3 在大多数 Linux 发行版的默认存储库中都可用,因此您可以从包管理器下载它。您可以从其网页获取更多软件包和源代码。

结论

这些是一些最有用的命令行和图形实用程序,可用于比较多个文件。这些差异工具提供了一种跟踪文件更改、合并差异和创建补丁的好方法。如果需要,您还可以使用它们手动将文件恢复到早期状态。

©2015-2025 艾丽卡 support@alaica.com