如何阅读 diff 命令的输出
diff 命令有三种模式:上下文模式(context),合并模式(unified)和普通模式(normal)。其中最常用的是合并模式。
合并模式
diff -u f1 f2
--- f1 2024-03-11 21:08:41
+++ f2 2024-03-11 21:08:40
@@ -3,7 +3,7 @@
3
4
5
-6
+66
7
8
9
第一部分表示文件名和时间
--- f1 2024-03-11 21:08:41
+++ f2 2024-03-11 21:08:40
---表示变动前的文件+++表示变动后的文件
第二部分表示变动的位置
@@ -3,7 +3,7 @@
-3,7:-号表示变动前的文件,3,7表示从第 3 行开始的连续 7 行+3,7:表示变动后的文件的从第 3 行开始的连续 7 行
第三部分表示变动的具体内容,上下文各显示 3 行
-6
+66
- 标志位
-表示第一个文件删除的行 - 标志位
+表示第二个文件新增的行
- 标志位
附:git 版本的 diff
git diff
diff --git a/f1 b/f1
index 6f8a38c..449b072 100644
--- a/f1
+++ b/f1
@@ -3,7 +3,7 @@
3
4
5
-6
+66
7
8
9
第一部分表示比较的文件
diff --git a/f1 b/f1
diff --git表示这是 git 版本的 diffa/f1 b/f1表示进行比较的是 a 版本的 f1(即变动前)和 b 版本的 f1(即变动后)
第二部分表示两个文件的哈希值
index 6f8a38c..449b072 100644
index xxx..xxx表示两个版本的 git 哈希值(index 区域的6f8a38c对象,与工作目录区域的449b072对象进行比较)100644是对象的模式(普通文件,644 权限)
后面的部分与 unified 模式相同
上下文模式
上下文各显示 3 行
diff -c f1 f2
*** f1 Mon Mar 11 21:05:01 2024
--- f2 Mon Mar 11 21:04:56 2024
***************
*** 3,9 ****
3
4
5
! 6
7
8
9
--- 3,9 ----
3
4
5
! 66
7
8
9
第一部分表示文件名和时间
*** f1 Mon Mar 11 21:05:01 2024
--- f2 Mon Mar 11 21:04:56 2024
***表示变动前的文件---表示变动后的文件
第三行的星号
***************是分隔符第二部分表示具体的变动
*** 3,9 ****
3
4
5
! 6
7
8
9
--- 3,9 ----
3
4
5
! 66
7
8
9
***表示变动前的文件---表示变动后的文件3,9表示下面的内容是该文件的第 3 到 9 行- 每行前面的标记位,
+表示该行为新增,!表示该行有改动,-表示该行被删除
普通模式
普通模式是最原始的 diff 格式。
原文件
f1:
1
2
3
4
5
6
7
8
9
f2:
1
2
3
4
5
66
7
8
9
进行比较:
diff f1 f2
6c6
< 6
---
> 66
第一部分
6c6:表示变动的位置。- 第一个
6表示文件 f1 的第 6 行有变化。 c表示变动模式是change(变更)。除了change外,变动模式还有add(新增)和delete(删除)。- 第二个
6表示变动后变成 f2 的第 6 行。
- 第一个
第二行
< 6和 f1 相关。<表示要从 f1 当中去除该行,后面的6表示该行的内容。第三行
---用来分割 f1 和 f2 的内容。第四行
> 66和 f2 相关。>表示 f2 增加了该行,后面的66表示该行的内容。
如何阅读 diff 命令的输出的更多相关文章
- Linux下diff命令用法详解
大家好,我是良许. 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点.在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也 ...
- 通过实例看懂diff命令输出
摘自:http://blog.sina.com.cn/s/blog_612144f30100nkpt.html ############################### 实例: 有这样两个文件: ...
- diff 命令详解
[自注:] 1,还有个colordiff命令,用颜色标识不同的地方.需要先安装 2,diff normal模式中 2,5表示从第二行到第五行 3,diff -c 模式中,2,5表示从第二行到第五行 4 ...
- linux shell 脚本攻略学习13--file命令详解,diff命令详解
一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...
- linux diff命令
diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...
- 每天一个linux命令(36):diff 命令
diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...
- linux中diff命令用法
diff 命 令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版 本的diff还支持二进制文件.diff程 ...
- 每天一个linux命令(28):diff 命令
diff 命 令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版 本的diff还支持二进制文件.diff程 ...
- 每天一个命令day1【diff 命令】(具体实例看下一节)
diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...
- diff命令和patch命令
diff命令和patch命令 Linux就这个范儿 2.9.5 文件对比命令——diff diff命令搭建网站离不开数据库,在Linux系统上我们使用源码安装了MySQL服务器.不久我们发现 Goog ...
随机推荐
- 使用PHP实现字符串的上标和下标,比如:M²和Log₂FC
要在PHP中实现字符串的上标和下标效果,并直接在命令行或网页中正确显示,你可以分别使用Unicode转义序列或HTML实体来表示上标(UPER)和下标(SUB)字符.对于打印到网页的情况,可以使用HT ...
- elementplus弹窗可拖拽draggable,点击空白处不消失close-on-click-modal,modal是否去掉遮罩层
<el-dialog :modal="false" v-model="dialogVisible" title="" width=&q ...
- 基于Java:流浪动物领养信息系统设计实现(源码+lw+部署文档+讲解等)
\n文末获取源码联系 感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 系统介绍: 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件 ...
- [oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话
换行字符 回忆上次内容 struct包可以让我们使用封包格式 把数字封包到字节里 pack函数负责封包 unpack函数负责解封 我们通过封到不同的字节状态 遍历了一次ascii码 编辑 还是 ...
- C# 一维数组与二维数组相互转换
class Program { static void Main(string[] args) { double[] a = { 1, 2, 3, 4, 5, 6 }; double[,] b = R ...
- java小技巧~修改对象的属性名
今天联调的时候,有个功能是在初始化的时候将图片路径回显到vant组件的上传组件上,但是vant组件需要图片路径名叫url,而后端返给我的路径名叫filePath,而且是双层嵌套.一个个遍历老麻烦了,下 ...
- 搭建php环境
nginx安装在宿主机上 db: 正式采用阿里云rds 测试使用docker安装 注意:报错一般都是需要配置国内镜像源,看之前的配置记录. 除了关闭防火墙,还要设置这个(本地开发环境) 永久关闭 SE ...
- 【教程】重启Windows文件资源管理器
[教程]重启Windows文件资源管理器 打开任务管理器 以下方法任选其一: 方法一 :组合键 Ctrl + Shift + ESC (个人推荐) 方法二 :组合键 Win + X (或右键Windo ...
- docker部署苍穹外卖
首先修改配置信息和自己的docker部署信息相符:MySQL.redis.记得把MySQL数据导上去(记得数据库信息的完整) 1.通过maven下载三个jar包 2.上传,编写dockerfile,注 ...
- 如何理解IOC中的“反转”和DI中的“注入”
在理解 IOC 中的"反转"和 DI 中的"注入"之前,首先要理解原本的控制流程. 在传统的应用程序中,对象之间的依赖关系通常由调用方(例如客户端或者上层模块) ...