6

Linux Diff命令比较文件不同

 1 year ago
source link: https://www.myfreax.com/diff-command-in-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux Diff命令比较文件不同

diff是一个命令行程序,可让您逐行比较两个文件。它还可以比较目录的内容

Updated At 13 Nov 2022 3 min read
By myfreax
Linux Diff命令比较文件不同

Linux Diff命令比较文件不同

diff是一个命令行程序,可让您逐行比较两个文件。它还可以比较目录的内容。

diff命令最常用于创建一个补丁,其中包含可以使用patch命令应用的一个或多个文件之间的差异。

diff命令的语法形式是diff [OPTION]... FILES。其中FILES可以是一个或者多个文件。OPTION是diff命令的选项。

diff命令可以以几种格式显示输出,其中最常见的是普通格式,上下文格式和统一格式。

输出包含文件相同与不相同的信息。如果文件匹配,则不会产生输出。要将命令输出保存到文件,请使用重定向运算符>

在本教程中,我们将使用file1file2两个文件来说明diff命令的工作方式。

diff file1 file2 > patch
Ubuntu
Arch Linux
Debian
CentOS
Fedora
file1
Kubuntu
Ubuntu
Debian
Arch Linux
Centos
Fedora
file2

在没有任何选项是运行diff命令最简单的形式,在这种情况下diff命令比较两个文本文件,它会以标准格式生成输出。

标准格式输出由描述差异的一个或多个部分组成。与0a12d24c4,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在第一个文件删除第二行2d符号后的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命令逐行比较文件。如有任何疑问,请在下面发表评论。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK