如何阅读 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 ...
随机推荐
- Docker部署php运行环境
编写docker-compose.yml配置文件,使用nginx作为web服务器,转发php的请求. version: "3" services: web: image: ngin ...
- ajax - 接口、表单、模板引擎
1. 今天继续ajax的一个学习,首先明确一个观念,接口,什么是接口,当使用ajax请求数据时,被请求的url就叫做数据接口也就是接口,注意每个接口必须有请求方式,这里有一个接口的测试工具,postm ...
- Vue2 整理(一):基础篇
前言 首先说明:要直接上手简单得很,看官网熟悉大概有哪些东西.怎么用的,然后简单练一下就可以做出程序来了,最多两天,无论Vue2还是Vue3,就都完全可以了,Vue3就是比Vue2多了一些东西而已,所 ...
- 硬核案例分享,一文带你拆解PHP语言体系下的容器化改造
本文分享自华为云社区<PHP语言体系下的容器化改造,助力夺冠集团应用现代化>,作者: HuaweiCloudDeveloper. 1.摘要 本文主要介绍了PHP语言体系应用现代化改造上云的 ...
- mybatis-plus的insert方法出现-id' doesn't have a default value问题
出现这个问题,只需把对应的字段注解设置为,例如: @TableId(value = "id",type = IdType.INPUT) private String id; 即可解 ...
- leetcode简单(双指针):[88, 202, 345, 392, 455, 905, 922, 917, 925, 942]
[toc 88. 合并两个有序数组 var merge = function(nums1, m, nums2, n) { let A1 = nums1.slice(0, m) let A2 = num ...
- iOS开发基础109-网络安全
在iOS开发中,保障应用的网络安全是一个非常重要的环节.以下是一些常见的网络安全措施及对应的示例代码: Swift版 1. 使用HTTPS 确保所有的网络请求使用HTTPS协议,以加密数据传输,防止中 ...
- AT_agc019_b 题解
洛谷链接&Atcoder 链接. 题目简述 给定一个字符串 \(A\),可以选择区间 \([i,j]\) 翻转一次,求能得到多少本质不同的字符串.(\(A\) 的长度不超过 \(2 \time ...
- idea快捷键Ctrl+alt+m:如何快速抽离部分方法
Ctrl+alt+m 效果如下图
- .NET 权限工作流框架 TOP 榜
前言 .NET权限管理及快速开发框架.最好用的权限工作流系统. 基于经典领域驱动设计的权限管理及快速开发框架,源于Martin Fowler企业级应用开发思想及最新技术组合(SqlSugar.EF.Q ...