一、diff和patch
diff命令是linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方,常用于svn和git中。diff会在命令行中打印每一个行的改动。diff程序的输出称为补丁(patch),patch命令可以根据diff的输出将a.c的内容更新为b.c的内容,或者是将b.c的内容还原成a.c的内容。
二、diff命令介绍
1、命令格式:diff option 文件1 文件2
常用option:
-b:不检查空格字符的不同
-B:不检查空行的不同
-c:显示全部内容,并标出不同之处
-i:不检查大小写的不同
-p:若比较文件是C语言文件时,显示差异所在的函数名称。
-q:仅显示有无差异,不显示详细信息
-u:以合并的方式显示文件内容的不同
-y:以并列的方式显示文件的异同之处
例1:
例2:
例3:
2、分屏显示文件差异:
命令:vimdiff 文件1 文件2
例:
三、patch命令介绍
diff A B > C //生成A和B的补丁文件
patch A C //给A打上补丁,使得A文件变成B文件
patch -R B C //让B还原成A文件
例:
四、文件合并工具paste
命令格式:paste option 文件…
option:
-s:一般在合并的时候是平行处理的,即合并完之后同一行的内容还在同一行。使用-s选项可以进行串列合并,即同一行的内容处于同一列。
-d:因为文件合并时默认是一列一列的合并,可以用-d指定列合并的分隔符。
例:
例2:使用串列合并
例3:将分隔符改成”#”