diff&&patch

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

[email protected]:~$ 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
+
[email protected]:~$

其中,以 + 起始的是新加入的行,以- 起始的是删除的行。

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

[email protected]:~$ diff -u v1 v2 >v.path

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

[email protected]:~$ patch -p1 v1 <v.patch
patching file v1
[email protected]:~$ diff v1 v2
[email protected]:~$

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

[email protected]:~$ patch -p1 v1 < v.patch
patching file v1
[email protected]:~$ diff v1 v2
4c4
< 5
---
> 4
7c7
< 8
---
>
[email protected]:~$

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

[email protected]:~$ 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
+
[email protected]:~$
时间: 2024-10-13 03:35:48

diff&&patch的相关文章

Linux diff patch

/***************************************************************************** * Linux diff patch * 声明: * 经常需要给代码打补丁,但是发现自己不会打补丁,经常看着补丁改代码,效率 * 那是一个低啊,不会就学学呗,反正patch有-R回退,不怕出错. * * 2015-12-28 深圳 南山平山村 曾剑锋 *********************************************

Linux之旅(1): diff, patch和quilt (下)

Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不能直接向版本号管理工具提交代码.自己用版本号管理工具重建整个项目是不合适的,由于大多数代码都是别人维护的,比如Linux内核.我们仅仅是想管理好自己的补丁.这时能够使用quilt. 2.1 基本概念 quilt是一个帮助我们管理补丁的程序.quilt的命令格式相似于cvs: quilt 子命令 [參

几个频繁使用的命令tar/diff/patch/grep/find简单使用

tar/diff/patch/grep/find使用频繁,记录下几个例子 1. tar可打包,解包,压缩,解压功能 打包压缩命令:tar czf project.tar.gz projectdir 或tar cjf project.tar.bz2 project 解压解包命令:tar xzf project.tar.gz 或tar xjf project.tar.bz2 2. diff用来比较文件,比较目录,制作补丁 制作补丁:diff -urNwB projectRaw projectCook

几个重要的shell命令:diff patch tar find grep

diff diir_1.0/ dir_2.0/ -urNB > dir_2.0.patch u:union以合并的格式来输出文件的差异信息 r:递归的对比所有的子目录下的文件 U:将不存在的文件视为空文件 B:忽略空行引起的差异 ~/dir_1.0$ patch -p1< ../dir_2.0.patch -p1的意思是忽略补丁文件中的路径一级分量:比如补丁是在home目录生成的,home目录下有dir_1.0/ dir_2.0/两个目录. 打补丁的时候进入了dir_1.0/这个目录,我就需要

文本查看及处理工具:wc, cut, sort, uniq, diff, patch

wc:字符统计,直接使用会依次显示行数.单词数.和字符 wc  [OPTION]...  [FILE]... -l: 行数 -w:单词数 -c: 字符 cut:选取命令,就是将一段数据经过分析,取出我们想要的列,后面必须跟参数使用 cut OPTION... [FILE]... OPTION:     -d CHAR:以指定的字符为分隔符:     -f FIELDS:挑选出的字段:     #:指定的单个字段:     #-#:连续的多个字段:     #,#:离散的多个字段: [[email

Linux基础之文本处理命令(wc,cut,sort,uniq,diff,patch)

我相信大家在使用Linux过程中总会遇到想要提取某些自己需要的信息的情况,比如如下这四种情况: 1.找出ifconfig命令结果中eno16777728的IPv4地址 2.查出分区空间使用率的最大百分比值 3.查出/tmp的权限,以数字方式显示 这个时候,我们使用命令当然也可以查看,不过还需要自己通过眼睛去过滤不需要的信息,多费劲.如何让自己更轻松的看到自己想看到自己想看的信息呢?今天的文本处理命令能满足我们的简单需求. wc 此wc非彼WC,在这里wc是word count的简写 wc - p

git diff patch

如何生成patch:修改一个地方,然后git diff > xxx.patch 就会生成一个patch文件,这里的关键似乎是, 源文件的某个模块的版本要和线上发布的最新版本要一致,这样patch才会被官方采纳. git diff --help就会激活一个帮助页面git xxx --help 如何采用patch下载patch文件到当前文件夹,保持环境文件和线上一致,然后git apply -v xxx.patchrm -rf xxx.patch touch .gitignorevi .gitign

diff patch 命令制作补丁

diff 命令 diff可以比较两个文件,并可同时记录下二者的区别.制作补丁时的一般用法和常见选项为: diff [选项] 源文件(夹) 目的文件(夹) -r:递归,设置后diff会将两个不同版本源代码目录中的所有对应文件都进行一次比较,包括子目录文件: -N:确保补丁文件将正确地处理已经创建或删除文件的情况: -u:一体化diff输出(参见例1) -E, -b, -w, -B, –strip-trailing-cr 忽略各种空白,可参见文档,按需选用. 例1,有如下两个差异文件: # vers

Linux中使用diff生成补丁与用patch打补丁

1.使用diff生成补丁: diff是Linux下的文件比较命令,参数这里就不说了,直接man一下就行了,不仅可以比较文件,也可以比较两个目录,并且可以将不同之处生成补丁文件,其实就是一种打补丁的命令.使用方法如下: diff -rNu a b > diff.patch 其中,a是旧的目录或文件,b为最近修改后的目录或文件,生成的补丁文件为patch. 2.使用patch打补丁: patch命令的参数详见man手册,使用patch给另外一个a目录打补丁时如下: patch -p0 < diff