如何看懂linux_diff_patch

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1)diff的传统格式输出.

############################################

cat before.txt

输出:

This is a line to be deleted

This is a line that will be changed

This is a line that will be unchanged

cat after.txt

输出:

This is a line that has been changed

This is a line that will be unchanged

This is a line that has been added

############################################

diff before.txt after.txt

输出:

1,2c1

< This is a line to be deleted

< This is a line that will be changed

---

> This is a line that has been changed

3a3

> This is a line that has been added

############################################

注释:

传统格式的输出

1,2c1是指替换第1个文件的第1,2行到第2个文件的第2行,这里的1,2是指第1个文件的第1,2行,c是替换的意思,最后的1是第2个文件的第1行

<号是指第1个文件更改或删除的行

---号是分割两个文件

>号是第2个文件中增加或删除的行

3a3是指将第2个文件的第3行插入到第一个文件的第3行

也就是说第1个文件的:

< This is a line to be deleted

< This is a line that will be changed

被替换成第2个文件的:

> This is a line that has been changed

由于第1个文件的第3行和第2个文件的第2行一致,所以不做修改.

由于第2个文件的第3行是第1个文件所不具有的,所以在第1个文件的最后一行增加:

> This is a line that has been added

2)patch命令的应用

用diff的传统格式输出:

#################################

diff before.txt after.txt >mypatch.txt

#################################

用patch修补before.txt文件,使before.txt和after.txt一致. #################################

cat mypatch.txt |patch before.txt

输出:

patching file before.txt

#################################

比较两个文件,现在是一致的了.

#################################

cmp before.txt after.txt

#################################

用patch命令恢复before.txt.

#################################

patch -R before.txt

输出:

patching file before.txt

#################################

注:-R标记告诉patch在反向上应用区别或者撤销patch. 再比较两个文件,现在不一致了.

#################################

cmp before.txt after.txt

输出:

before.txt after.txt differ: byte 17, line 1

#################################

3)diff的统一格式输出.

#################################

diff -u before.txt after.txt |tee mypatch.diff

输出:

--- before.txt 2009-06-20 05:21:49.000000000 +0800

+++ after.txt 2009-06-20 04:03:16.000000000 +0800

@@ -1,3 +1,3 @@

-This is a line to be deleted

-This is a line that will be changed

+This is a line that has been changed

This is a line that will be unchanged

+This is a line that has been added

#################################

注释:

相关文档
最新文档