
Linux Diff命令比较文件不同
diff是一个命令行程序,可让您逐行比较两个文件。它还可以比较目录的内容
diff是一个命令行程序,可让您逐行比较两个文件。它还可以比较目录的内容。
diff命令最常用于创建一个补丁,其中包含可以使用patch命令应用的一个或多个文件之间的差异。
diff命令的语法形式是diff [OPTION]... FILES。其中FILES可以是一个或者多个文件。OPTION是diff命令的选项。
diff命令可以以几种格式显示输出,其中最常见的是普通格式,上下文格式和统一格式。
输出包含文件相同与不相同的信息。如果文件匹配,则不会产生输出。要将命令输出保存到文件,请使用重定向运算符>。
在本教程中,我们将使用file1和file2两个文件来说明diff命令的工作方式。
diff file1 file2 > patch
Ubuntu
Arch Linux
Debian
CentOS
Fedora
Kubuntu
Ubuntu
Debian
Arch Linux
Centos
Fedora
标准格式
在没有任何选项是运行diff命令最简单的形式,在这种情况下diff命令比较两个文本文件,它会以标准格式生成输出。
标准格式输出由描述差异的一个或多个部分组成。与0a1,2d2和4c4,5类似的字符称为更改命令。
每个更改命令从左到右包含这些内容,第一个文件中的行号或行范围。更改字符。第二个文件中的行号或行范围。
更改字符可以是,a添加的行。c换行。d删除行。更改命令后跟已删除的完整行<,添加到文件中完整行符号是>。
change-command
< from-file-line...
---
> to-file-line...
diff file1 file2
0a1
> Kubuntu
2d2
< Arch Linux
4c4,5
< CentOS
---
> Arch Linux
> Centos
让我们解释一下输出。0a1在file1的开头添加第二个文件的第一行。> Kubuntu表示添加Kubuntu到第一个文件的第一行。
2d2在第一个文件删除第二行2。d符号后的2 表示在第二个文件没有被删除。< Arch Linux 表示被删除的行。
4c4,5使用第二个文件中的4-5行替换第一个文件中的第5行。
< CentOS 该行在第一个文件中被替换。---分隔符。第二个文件的行> Centos替换第一个文件> Arch Linux行。
忽略区分大小写
在上述示例中您可能会注意到,diff命令默认区分大小写。使用-i选项指示diff忽略大小写。
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100
+++ file2 2019-11-25 21:00:36.342231668 +0100
@@ -1,6 +1,7 @@
+Kubuntu
Ubuntu
-Arch Linux
Debian
+Arch Linux
CentOS
Fedora
结论
比较文本文件的差异是Linux系统管理员最常见的任务之一。diff命令逐行比较文件。如有任何疑问,请在下面发表评论。




