diff命令--输出格式解读

diff命令–输出格式解读

建立两个文件:file1.c vs file2.c
第一个文件file1.c
第二个文件file2.c
meld 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结果 - 薰衣草的旋律 - 博客园

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ha-Ha-Interesting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值