Linux下文件归并,比较和补丁操作
- 文件归并,比较和补丁操作
在Linux很多时候要碰到比较,归并和打补丁等操作。
用diff系列工具比较文件
diff用来比较两个文件的不同之处,不加参数的情况下,它的输出是符合POSIX标准的普通模式;
-C 让diff生成Context Diff信息,姑且称之为上下文信息,标识出没块不同区域的不同点,具体情况查阅diff的man可以知道;
更常用的是diff的-u模式,也就是“统一输出(unified mode)”,这是GNU Patch的标准格式,所以很有用;
发布GNU格式的补丁使用-u模式以配合GNU patch使用,否则,就需要使用上下文模式生成补丁了。
diff3用来比较基于原始版本的两个不同修订版本之间的不同;
diff3 oldfile myfile yourfile
diff3的输出有时候会很复杂,所以一般使用-m参数先合并到一个文件,再对合并后的文件操作。
sdiff 半自动合并工具,sdiff会以交互式方式合并两个文件的不同,具体命令参阅man sdiff。
准备patch和打patch
diff -u 生成GNU统一风格的patch,就可以用GNU patch命令来打补丁了。
patch也有-c参数以告诉patch输入的是上下文格式的补丁。
值得注意的是patch的-pNUM参数,
NUM是“使用补丁前补丁中所包含的文件名中需要剥离的目录‘/’重数,
例如补丁中使用的文件名是/home/sourceroot/src/sourc.c,
则p1,得到home/sourceroot/src/source.c,
p3,得到src/source.c
在Linux很多时候要碰到比较,归并和打补丁等操作。
用diff系列工具比较文件
diff用来比较两个文件的不同之处,不加参数的情况下,它的输出是符合POSIX标准的普通模式;
-C 让diff生成Context Diff信息,姑且称之为上下文信息,标识出没块不同区域的不同点,具体情况查阅diff的man可以知道;
更常用的是diff的-u模式,也就是“统一输出(unified mode)”,这是GNU Patch的标准格式,所以很有用;
发布GNU格式的补丁使用-u模式以配合GNU patch使用,否则,就需要使用上下文模式生成补丁了。
diff3用来比较基于原始版本的两个不同修订版本之间的不同;
diff3 oldfile myfile yourfile
diff3的输出有时候会很复杂,所以一般使用-m参数先合并到一个文件,再对合并后的文件操作。
sdiff 半自动合并工具,sdiff会以交互式方式合并两个文件的不同,具体命令参阅man sdiff。
准备patch和打patch
diff -u 生成GNU统一风格的patch,就可以用GNU patch命令来打补丁了。
patch也有-c参数以告诉patch输入的是上下文格式的补丁。
值得注意的是patch的-pNUM参数,
NUM是“使用补丁前补丁中所包含的文件名中需要剥离的目录‘/’重数,
例如补丁中使用的文件名是/home/sourceroot/src/sourc.c,
则p1,得到home/sourceroot/src/source.c,
p3,得到src/source.c
Comments