如何阅读 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 ...
随机推荐
- 【OpenVINO™】YOLOv10在CPU上也能实现50+FPS推理—使用OpenVINO C++部署YOLOv10
英特尔发行版 OpenVINO 工具套件基于 oneAPI 而开发,可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,适用于从边缘到云的各种英特尔平台上,帮助用户更快地将更准确的真实世界 ...
- github中的子模块(git submodule)
git中支持引用另外一个开源库,并且可以指定依赖的分支或者提交记录号. 比如fltk-rs 库的fltk-sys模块依赖了库 cfltk 并指明了依赖的提交是 8a56507 甚至可以嵌套,毕竟库自身 ...
- ffmpeg -使用总结
ffmpeg 使用总结,不定期更新 ---------------------------------------- 1. 将截图合成影片: ffmpeg -i ./shot/%d.tiff -thr ...
- SpringBoot可视化接口开发工具magic-api
magic-api简介 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller.Service ...
- 开源免费的专注于建立大型个人知识库推荐-Trilium Notes
Trilium Notes是一个分层的笔记应用程序,专注于建立大型个人知识库. 支持相当丰富的 markdown,包括 mermaid 和 latex,而且即时渲染,和 typora 一样.支持代码类 ...
- 使用SVG做模型贴图的思路
大多数情况下,三维模型使用PNG,JPG作为模型的贴图,当然为了性能优化,有时候也会使用压缩贴图来提高渲染效率和较少GPU压力. 今天提供一种新的思路,使用SVG作为模型的贴图,可以达到动态调整图片精 ...
- GitHub Star 数量前 12 的开源无代码工具
相关文章:GitHub Star 数量前 15 的开源低代码项目 在本篇文章中,我们将探索 12 款在 GitHub 上星级排名前列的开源无代码工具. 每款工具都旨在简化和加速开发过程,但各自侧重于不 ...
- JAVA Spring Boot快速开始
实践环境 Spring Boot 3.2.1 Maven 3.8.8 JDK 1.8.0_331 创建项目 通过http://start.spring.io/网站创建包含Spring Boot的项目, ...
- Vue 结合html2canvas和jsPDF实现html页面转pdf
结合html2canvas和jsPDF实现html页面转pdf By:授客 QQ:103355122 实践环境 win10 Vue 2.9.6 axios 0.18.0 html2ca ...
- c#写一个WINFORM的多线程操作
以下是一个简单的示例,展示了如何在C# WinForms中创建一个按钮的异步事件,并使用Label控件来显示事件执行的时长. 首先,确保你已经在你的项目中添加了一个Button和一个Label控件.假 ...