diff命令--输出格式解读
diff命令–输出格式解读建立两个文件:file1.c vs file2.cmeld file1.c file2.ccolordiff file1.c file2.c变动的模式c表示内容改变(change)a表示内容增加(addition)d表示内容删除(deletion)< 文件的不同,仅在第一个文件(file1.c)中包含> 文件的不同,仅在第二个文件(file...
diff命令–输出格式解读
建立两个文件:file1.c vs file2.c
第一个文件file1.c
第二个文件file2.cmeld file1.c file2.c
diff命令解析
由于历史原因,diff有三种格式:
- 普通格式(normal diff)
- 上下文格式(context diff),需要加-c选项
- 合并格式(unified diff),需要加-u选项
下文中统一使用colordiff,其实和diff命令相同,只不过加了颜色。
普通格式(normal diff)
colordiff file1.c file2.c
变动的模式c表示内容改变(change)a表示内容增加(addition)d表示内容删除(deletion)< 文件的不同,仅在第一个文件(file1.c)中包含该行> 文件的不同,仅在第二个文件(file2.c)中包含该行
上下文格式(context diff)
colordiff file1.c file2.c -c*** 表示第一个文件 第一个文件修改时间--- 表示第二个文件 第二个文件修改时间- 第一个文件中的“已删除”行与第二个文件中的任何内容都不对应。即,第一个文件中有该行,第二个文件中没有。+ 第二个文件中的“插入”行与第一个文件中的任何内容都不对应。即,第二个文件中有该行,第一个文件中没有。! 表示两个文件都有的行,被修改过,在两个文件上都有该符号,来作为标记修改行
合并格式(unified diff)
colordiff file1.c file2.c -u--- 表示第一个文件 第一个文件修改时间+++ 表示第二个文件 第二个文件修改时间- 表示仅在第一个文件中有该行+ 表示仅在第二个文件中有该行@@ 标记行号的一行,无实际意义
并排格式(Side by Side Format)
colordiff file1.c file2.c -y -W 72-y 输出两列-w 控制输出宽度,72字符
若加’–suppress-common-lines’表示不显示两个相同的行。colordiff file1.c file2.c -y -W 72 --suppress-common-lines
> 仅右边第二个文件有该行,左边没有< 仅左边第一个文件有该行,右边没有| 两个文件都有该行,只是被修改了,符号两侧是对比。
这些符号都在中间显示。
参考:
Comparing and Merging Files
diff命令输出格式解读 - 车子(chezi)
读懂diff - 阮一峰的网络日志
diff详解,读懂diff结果 - 薰衣草的旋律 - 博客园
更多推荐


所有评论(0)