diff&&patch

//参考《Linux shell脚本攻略 第2版》

1, diff -u用于一体化输出:

ubuntu@VM-62-13-ubuntu:~$ diff -u v1 v2
--- v1  2015-06-27 20:43:50.530653196 +0800
+++ v2  2015-06-27 20:43:53.530653196 +0800
@@ -1,7 +1,7 @@
 4
 3
 2
-5
+4
 7
 7
-8
+
ubuntu@VM-62-13-ubuntu:~$
其中,以 + 起始的是新加入的行,以- 起始的是删除的行。


2, patch文件可以通过diff的输出重定向到一个文件来生成:

ubuntu@VM-62-13-ubuntu:~$ diff -u v1 v2 >v.path


3,可以用patch命令将v.patch应用于任意文件。当应用于v1时,就可以得到v2;当应用于v2时就可以得到v1:

ubuntu@VM-62-13-ubuntu:~$ patch -p1 v1 <v.patch
patching file v1
ubuntu@VM-62-13-ubuntu:~$ diff v1 v2
ubuntu@VM-62-13-ubuntu:~$

4,撤销对v1作出的修改:

ubuntu@VM-62-13-ubuntu:~$ patch -p1 v1 < v.patch
patching file v1
ubuntu@VM-62-13-ubuntu:~$ diff v1 v2
4c4
< 5
---
> 4
7c7
< 8
---
>
ubuntu@VM-62-13-ubuntu:~$

5, diff命令可以以递归的形式作用域目录。它会对目录中所有内容生成差异化输出:

ubuntu@VM-62-13-ubuntu:~$ diff -Naur v1v v2v
diff -Naur v1v/v1 v2v/v1
--- v1v/v1      2015-06-27 21:04:02.550408195 +0800
+++ v2v/v1      1970-01-01 08:00:00.000000000 +0800
@@ -1,7 +0,0 @@
-4
-3
-2
-5
-7
-7
-8
diff -Naur v1v/v2 v2v/v2
--- v1v/v2      1970-01-01 08:00:00.000000000 +0800
+++ v2v/v2      2015-06-27 21:04:07.998408195 +0800
@@ -0,0 +1,7 @@
+4
+3
+2
+4
+7
+7
+
ubuntu@VM-62-13-ubuntu:~$





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值