diff 命令用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff会在命令行中打印每一个行的改动,比较是针对文件内容与文件名无关.
”<”和”>”分别用于表示diff命令后面的第一个文件和第二个文件的内容
“3,4c3,4”表示第一个文件的第3到4行有改动(a 添加、d 删除、c 修改),改动后为第二个文件中的第3到4行
“------- ”是分隔符,上面指对比的第一个文件,下面指对比的第二个文件
当然还有更复杂的情况,如“3c3,6”、“6d8”,前者表示旧版本文件中的第3行被修改,对应新文件中的第3-6行,后者表示旧版本文件的第6行被删除,在新文件中是第8行。
可以通过参数指定diff输出格式,有兴趣的笔者可以分别进行尝试:
-e –ed 输出为ed命令格式
-n –rcs 输出为rcs命令格式
-y 输出为两列对照模式
-c 输出为上下文模式
除以上选项外,diff的有用的选项还包括:
-r:当diff的参数为文件夹时,diff会遍历整个文件夹对新旧文件夹下同名的文件进行比较
-w:忽略所有空格和制表符,将所有其他空白字符串视为一致。例如,if ( a == b ) 与 if(a==b) 相等。
-i:忽略字母大小写。例如,小写 a 被认为同大写 A 一样。
命令格式:
diff 文件1 文件2例子:
diff的输出
”<”和”>”分别用于表示diff命令后面的第一个文件和第二个文件的内容
“3,4c3,4”表示第一个文件的第3到4行有改动(a 添加、d 删除、c 修改),改动后为第二个文件中的第3到4行
“------- ”是分隔符,上面指对比的第一个文件,下面指对比的第二个文件
当然还有更复杂的情况,如“3c3,6”、“6d8”,前者表示旧版本文件中的第3行被修改,对应新文件中的第3-6行,后者表示旧版本文件的第6行被删除,在新文件中是第8行。
可以通过参数指定diff输出格式,有兴趣的笔者可以分别进行尝试:
-e –ed 输出为ed命令格式
-n –rcs 输出为rcs命令格式
-y 输出为两列对照模式
-c 输出为上下文模式
diff的选项
除以上选项外,diff的有用的选项还包括:
-r:当diff的参数为文件夹时,diff会遍历整个文件夹对新旧文件夹下同名的文件进行比较
-w:忽略所有空格和制表符,将所有其他空白字符串视为一致。例如,if ( a == b ) 与 if(a==b) 相等。
-i:忽略字母大小写。例如,小写 a 被认为同大写 A 一样。