如何理解linux中的diff-u?

如何理解linux中的diff-u?,linux,bash,shell,terminal,Linux,Bash,Shell,Terminal,示例代码 diff -r -u -P a.c b.c > diff.patch 我试着在男人身上搜索 man说diff-u是统一输出模式,这是什么意思?我们应该在什么时候使用它 非常感谢。统一一词是虚构出来的。更好的做法是,或许可以称之为“简洁” diff-u的要点在于,它是一种比上下文差异更简洁的表达。引用韦恩·戴维森(Wayne Davidson)将unidiff发布到comp.sources.misc(第14卷,90年8月31日)的原始描述: 以下是一些有用的链接: 没有用

示例代码

diff -r -u -P a.c b.c > diff.patch
我试着在男人身上搜索

man说diff-u是统一输出模式,这是什么意思?我们应该在什么时候使用它

非常感谢。

统一一词是虚构出来的。更好的做法是,或许可以称之为“简洁”

diff-u
的要点在于,它是一种比上下文差异更简洁的表达。引用韦恩·戴维森(Wayne Davidson)将
unidiff
发布到comp.sources.misc(第14卷,90年8月31日)的原始描述:

以下是一些有用的链接:

没有用(并且误导)

  • ,它似乎忽略了属性
来自:

统一格式(或unidiff)继承了上下文格式所做的技术改进,但产生了一个较小的diff,新文本和旧文本直接相邻。统一格式通常使用“-u”命令行选项调用。此输出通常用作修补程序的输入。许多项目特别要求以统一格式提交“diff”,使统一diff格式成为软件开发人员之间交换的最常见格式

该格式以与上下文格式相同的两行标题开始,但原始文件前面有
“--”
,新文件前面有
“+++”
。下面是一个或多个变更块,其中包含文件中的行差异。未更改的上下文行前面有空格字符,添加行前面有加号,删除行前面有减号

一个大块头从范围信息开始,紧接着是行添加、行删除和任意数量的上下文行。范围信息由双at符号包围,并以上下文格式(如上)在两行上显示的内容合并到一行上。范围信息行的格式如下:

    @@ -l,s +l,s @@ optional section heading

diff
向您抛出的任何格式的想法都是按照一系列步骤将源文件转换为目标文件。让我们看一个简单的例子,说明如何使用统一格式

给定以下文件:

from.txt to.txt
diff-u从.txt到.txt的输出为:

——frokm.txt 2015-03-17 04:34:47.076997087-0430
+++to.txt 2015-03-17 04:35:27.872996388-0430
@@ -1,2 +1,2 @@
A.
-b
+c
解释。标题说明:


--from.txt 2015-03-17 22:42:18.575039925-0430请参阅带和不带-u选项的输出。你会明白的要创建修补程序,您很可能需要使用-u。如果您想要一个无法理解的混乱,请使用
diff-u:)但实际上它只是将差异与文件内联,并在行之前使用+和-来表示前后。可能重复
    @@ -l,s +l,s @@ optional section heading
a
b
a
c