首页 > 其他分享 >如何阅读 diff 命令的输出

如何阅读 diff 命令的输出

时间:2024-06-04 14:47:12浏览次数:22  
标签:表示 f1 f2 输出 变动 --- 命令 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
  1. 第一部分表示文件名和时间

    --- f1	2024-03-11 21:08:41
    +++ f2	2024-03-11 21:08:40
    
    • --- 表示变动前的文件
    • +++ 表示变动后的文件
  2. 第二部分表示变动的位置

    @@ -3,7 +3,7 @@
    
    • -3,7- 号表示变动前的文件,3,7 表示从第 3 行开始的连续 7 行
    • +3,7:表示变动后的文件的从第 3 行开始的连续 7 行
  3. 第三部分表示变动的具体内容,上下文各显示 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
  1. 第一部分表示比较的文件

    diff --git a/f1 b/f1
    
    • diff --git 表示这是 git 版本的 diff
    • a/f1 b/f1 表示进行比较的是 a 版本的 f1(即变动前)和 b 版本的 f1(即变动后)
  2. 第二部分表示两个文件的哈希值

    index 6f8a38c..449b072 100644
    
    • index xxx..xxx表示两个版本的 git 哈希值(index 区域的 6f8a38c 对象,与工作目录区域的 449b072 对象进行比较)
    • 100644 是对象的模式(普通文件,644 权限)
  3. 后面的部分与 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
  1. 第一部分表示文件名和时间

    *** f1	Mon Mar 11 21:05:01 2024
    --- f2	Mon Mar 11 21:04:56 2024
    
    • *** 表示变动前的文件
    • --- 表示变动后的文件
  2. 第三行的星号 *************** 是分隔符

  3. 第二部分表示具体的变动

    *** 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
  1. 第一部分 6c6:表示变动的位置。

    • 第一个 6 表示文件 f1 的第 6 行有变化。
    • c 表示变动模式是 change(变更)。除了 change 外,变动模式还有 add(新增)和 delete(删除)。
    • 第二个 6 表示变动后变成 f2 的第 6 行。
  2. 第二行 < 6 和 f1 相关。< 表示要从 f1 当中去除该行,后面的 6 表示该行的内容。

  3. 第三行 --- 用来分割 f1 和 f2 的内容。

  4. 第四行 > 66 和 f2 相关。> 表示 f2 增加了该行,后面的 66 表示该行的内容。

参考:读懂 diff | 阮一峰的网络日志

标签:表示,f1,f2,输出,变动,---,命令,diff
From: https://www.cnblogs.com/Undefined443/p/18230694

相关文章

  • 命令行压缩工具用法
    tar归档#创建一个未压缩的tar归档文件#其中,`-c`表示创建归档文件,`-v`表示显示详细信息,`-f`表示指定归档文件名。tar-cvfarchive.tarfile1file2dir1#创建一个使用gzip压缩的tar归档文件#其中,`-z`表示使用gzip压缩。tar-czvfarchive.tar.gzfile1fi......
  • AI绘画Stable Diffusion 制作火爆网络的 瞬息全宇宙 风格视频动画,AI绘画还能这么玩!
    大家好,我是设计师阿威本期将教大家如何使用AI绘画工具StableDiffusion制作动画视频,本期将以火爆网络的“瞬息全宇宙”风格动画分享制作方法要生成这种风格的视频,只需要在StableDiffusion里写几句提示词,配置几个参数,点击一下生成按钮就能做出来。(如还没有下载安装S......
  • AI绘画最新Stable Diffusion安装包+教程+模型+插件+全套入门资料来了,免费拿!
    大家好,我是设计师阿威这篇文章主要给大家分享一些AI绘画方面的学习资料、AI工具以及模型插件、视频教程等等。如果你是新手入门,就一定不要错过这些资料!获取方式:请查看文章底部1.stablediffusion安装包随着技术的迭代,目前StableDiffusion已经能够生成非常艺术化的......
  • Golang(Go语言)封装一个简单的控制台输出包
    //定义6个常量,每个常量代表一个布尔值为true的位置const( LEVEL_DEBUG=1<<iota LEVEL_INFO LEVEL_WARN LEVEL_ERROR LEVEL_FATAL PRINT_SRC_FILE)typeconsoleFuncfunc(formatstring,a...any)varprintSrcFileEmptyFunc=func(){}typeConsolestruct{......
  • linux命令ping
    ping命令[root@iwopt]#ping172.1.1.3PING172.1.1.3(172.1.1.3)56(84)bytesofdata.64bytesfrom172.1.1.3:icmp_seq=1ttl=123time=16.8ms64bytesfrom172.1.1.3:icmp_seq=2ttl=123time=16.4msbytes:ping命令用于检测网络上另一台计算机是否可达。当你执......
  • Windos bat批处理脚本,判断是终端命令行运行,还是双击运行
    前言全局说明判断是终端命令行运行,还是双击运行一、说明二、文件名:t_echo.bat@echooffecho%CMDCMDLINE%|find"/c">nulif%errorlevel%equ0( echo. echo[INFO]脚本%~nx0是双击运行 echo. pause)else( echo. echo[INFO]脚本%~nx0在命令行......
  • SQLmap常用命令使用详解
    SQLmap使用详解 一、SQLmap常规使用步骤1、查询注入点pythonsqlmap.py-v3-uhttp://127.0.0.1/sqli-labs/Less-1/?id=12、查询所有数据库pythonsqlmap.py-v3-uhttp://127.0.0.1/sqli-labs/Less-1/?id=1--dbs3、查询当前数据库pythonsqlmap.py......
  • java -jar命令常见使用方法
    1、基本用法:java-jarfilename.jar这是最简单的用法,直接指定要运行的JAR文件的名称(包括.jar扩展名)。Java虚拟机(JVM)将加载并执行JAR文件中的主类(在JAR文件的META-INF/MANIFEST.MF文件中指定为主类)。2.使用nohup在后台运行:如果你希望在后台运行JAR文件,......
  • LED车灯驱动IC高精度电流输出±3%以内降压恒流芯片AP5161
    概述AP5161是一款高精度降压型大功率LED恒流驱动芯片。适用于输入电压100V以内的大功率LED恒流驱动电源。专利的高端电流检测、固定频率、电流模PWM控制方式,具有优异的线性调整率和负载调整率。芯片采用的特有恒流控制方式,使得LED输出电流精度达到±3%以内。芯片内部集......
  • LED工业照明灯降压恒流驱动ICAP5162芯片95%高效率输出精确电流±4%
    概述AP5162是一款降压、恒流、高效率的高亮度LED驱动器。AP5162特别适合宽输入电压范围的应用,输入电压范围从5.5V到36V,并且AP5162对输入电压具有高的抑制比。AP5162采用内置的低导通电阻的功率开关管,简化了芯片的外围电路,只需很少的外接元件就可实现降压、恒流驱动功......