如何在 Linux 终端中使用 diff 比较文本文件
diff 是一个标准的命令行 Linux 实用程序,可让您比较两个文件之间的差异。以下是您如何利用它来发挥自己的优势。
您是否曾经有过两个相似的文件并想知道哪些部分不同?您是否正在编写代码并试图弄清楚如何融入您或其他程序员所做的更改?有一个名为“diff”的标准 Linux 实用程序可以提供帮助。
什么是差异?
diff 是一个显示两个文本文件之间差异的实用程序,这就是其名称的由来。它是 POSIX 标准的一部分,这意味着它存在于几乎所有类 Unix 系统上,包括 Linux、macOS 和其他 BSD。
如果您使用的是主要的 Linux 发行版,那么您很可能会使用 GNU 版本。如果您使用的是最小的 Linux 发行版,则可能会将其作为 BusyBox 或 Toybox 库的一部分,或者如果您使用的是 BSD 系统,则可能将其作为 BSD 版本的一部分。您可以通过查看手册页来查看您拥有的版本:
man diff
在 Linux 上使用 diff 比较两个文件
要比较两个文本文件,只需将它们的路径作为参数传递给 diff:
diff file1 file2
diff 将显示文件中两者之间不同的行。第一个文件中的行以“<”开头,第二个文件中的行以“>”字符开头。输出显示已更改、附加或删除的行,包括总体受影响的行数。
如果更改第一行,diff 将输出“1c1”,这意味着“从第 1 行开始,更改第 1 行”。在 diff 中,“a”代表“append”,“c”代表“change”和“d”代表“删除”。
其他差异功能和选项
要并排查看文件,请使用 -y 选项:
diff -y file1 file2
-u 选项生成一个“统一”的 Outlook,其中包含 ed 编辑器的编辑脚本,以便可以自动执行更改。
在像 Git 这样的分布式版本控制系统被广泛使用之前,开源项目会通过电子邮件征求这种格式的补丁,然后通过补丁程序将其应用到代码库。
现在您可以在 Linux 上使用 diff 比较文件
diff 实用程序可能看起来晦涩难懂,但无论您只是比较文件还是向开源开发人员提交补丁,它都有助于查看两个文件之间的差异。
如果您不喜欢 Linux 终端,您甚至不必使用命令行来比较文件,甚至根本不需要使用本地计算机。有一些在线工具可以让您比较网络上的文件。