Linux文本比较指令-diff

linxu命令diff:比较两个或多个文件的内容差异的工具diff详解 diff 是一个非常有用的 Linux/Unix 命令,用于比较两个或多个文件的内容差异。这个命令广泛应用于版本控制、代码审查、文件比较等场景。下面是对 diff 命令的详细介绍,包括其基本用法、常用选项以及一些高级用法。diff 命令是一个非常强大而灵活的工具,可以用于多种场景下的文件比较。技术人员通过掌握其基本用法和高级选项,可以更高效地进行文件比较和管理。可以使用 diff 来比较两个目录的内容,以及递归地比较所有文件和子目录的内容差异;可以用于 版本控制、文件备份、代码审查、安全审计等场景中。 阅读详情

  diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将 a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。

1.命令格式:

diff[参数][文件1或目录1][文件2或目录2]

2.命令功能:

  diff 命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的 的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。

3.命令参数:

-<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用;

-a或--text  diff预设只会逐行比较文本文件。

-b或--ignore-space-change  不检查空格字符的不同。

-B或--ignore-blank-lines  不检查空白行。

-c  显示全部内文,并标出不同之处。

-C或--context  与执行"-c-"指令相同。

-d或--minimal  使用不同的演算法,以较小的单位来做比较。

-D或ifdef  此参数的输出格式可用于前置处理器巨集。

-e或--ed  此参数的输出格式可用于ed的script文件。

-f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。

-H或--speed-large-files  比较大文件时,可加快速度。

-l或--ignore-matching-lines  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。

-i或--ignore-case  不检查大小写的不同。

-l或--paginate  将结果交由pr程序来分页。

-n或--rcs  将比较结果以RCS的格式来显示。

-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。

-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。

-P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。

-q或--brief  仅显示有无差异,不显示详细的信息。

-r或--recursive  比较子目录中的文件。

-s或--report-identical-files  若没有发现任何差异,仍然显示信息。

-S或--starting-file  在比较目录时,从指定的文件开始比较。

-t或--expand-tabs  在输出时,将tab字符展开。

-T或--initial-tab  在每行前面加上tab字符以便对齐。

-u,-U或--unified=  以合并的方式来显示文件内容的不同。

-v或--version  显示版本信息。

-w或--ignore-all-space  忽略全部的空格字符。

-W或--width  在使用-y参数时,指定栏宽。

-x或--exclude  不比较选项中所指定的文件或目录。

-X或--exclude-from  您可以将文件或目录类型存成文本文件,然后在=中指定此文本文件。

-y或--side-by-side  以并列的方式显示文件的异同之处。

--help  显示帮助。

--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。

--suppress-common-lines  在使用-y参数时,仅显示不同之处。

4 .实例

有这样两个文件:

程序清单1 :hello.c

#include 
int main(void)
{
    char msg[] = "Hello world!";

    puts(msg);
    printf("Welcome to use diff commond.\n");

    return 0;    
}

程序清单2:hello_diff.c

#include 
#include 
int main(void)
{
    char msg[] = "Hello world,fome hello_diff.c";

    puts(msg);
    printf("hello_diff.c says,'Here you are,using diff.'\n");

    return 0;    
}

我们使用diff命令来查看这两个文件的不同之处,有一下几种方便的方法:

4.1、普通格式输出:

[root@localhost diff]# diff hello.c hello_diff.c 
1a2
> #include 
5c6
       char msg[] = "Hello world,fome hello_diff.c";
8c9
       printf("hello_diff.c says,'Here you are,using diff.'\n");
[root@localhost diff]# 
上面的“1a2”表示后面的一个文件"hello_diff.c"比前面的一个文件"hello.c"多了一行
"5c6"表示第一个文件的第5行与第二个文件的第6行有区别

4.2、并排格式输出

[root@localhost diff]# diff hello.c hello_diff.c -y -W 130
#include                                          #include 
                                                   > #include 
int main(void)                                    int main(void)
{                                                 {
   char msg[] = "Hello world!";                    | char msg[] = "Hello world,fome hello_diff.c";
   puts(msg);                                        puts(msg);
   printf("Welcome to use diff commond.\n");       | printf("hello_diff.c says,'Here you are,using diff.'\n");
   return 0;                                         return 0;
}                                                  }

[root@localhost diff]# 
这种并排格式的对比一目了然,可以快速找到不同的地方。
-W选择可以指定输出列的宽度,这里指定输出列宽为130

4.3、上下文输出格式

[root@localhost diff]# diff hello.c hello_diff.c -c
*** hello.c     2007-09-25 17:54:51.000000000 +0800
--- hello_diff.c        2007-09-25 17:56:00.000000000 +0800
***************
*** 1,11 ****
  #include 

  int main(void)
  {
!       char msg[] = "Hello world!";

        puts(msg);
!       printf("Welcome to use diff commond.\n");

        return 0;
  }
--- 1,12 ----
  #include 
+ #include 

  int main(void)
  {
!       char msg[] = "Hello world,fome hello_diff.c";

        puts(msg);
!       printf("hello_diff.c says,'Here you are,using diff.'\n");

        return 0;
  }
[root@localhost diff]# 
这种方式在开头两行作了比较文件的说明,这里有三中特殊字符:
+        比较的文件的后者比前着多一行
-        比较的文件的后者比前着少一行        
!        比较的文件两者有差别的行

4.4、统一输出格式

[root@localhost diff]# diff hello.c hello_diff.c -u
--- hello.c     2007-09-25 17:54:51.000000000 +0800
+++ hello_diff.c        2007-09-25 17:56:00.000000000 +0800
@@ -1,11 +1,12 @@
#include 
+#include 

int main(void)
{
-       char msg[] = "Hello world!";
+       char msg[] = "Hello world,fome hello_diff.c";

        puts(msg);
-       printf("Welcome to use diff commond.\n");
+       printf("hello_diff.c says,'Here you are,using diff.'\n");

        return 0;
}
[root@localhost diff]# 
正如看到的那样,统一格式的输出更加紧凑,所以更易于理解,更易于修改。

4.5、其他

假如你想查看两个文件是否不同又不想显示差异之处的话,可以加上-q选项:

[root@localhost diff]# diff hello.c hello_diff.c -q
Files hello.c and hello_diff.c differ

[root@localhost diff]# 另外你还可以提供一些匹配规则来忽略某中差别,可以用 -I regexp

[root@localhost diff]# diff hello.c hello_diff.c -c -I include
*** hello.c     2007-09-25 17:54:51.000000000 +0800
--- hello_diff.c        2007-09-25 17:56:00.000000000 +0800
***************
*** 2,11 ****

  int main(void)
  {
!       char msg[] = "Hello world!";

        puts(msg);
!       printf("Welcome to use diff commond.\n");

        return 0;
  }
--- 3,12 ----

  int main(void)
  {
!       char msg[] = "Hello world,fome hello_diff.c";

        puts(msg);
!       printf("hello_diff.c says,'Here you are,using diff.'\n");

        return 0;
  }
[root@localhost diff]# 
这里通过“ -I include”选项来忽略带有“ include”字样的行
diff命令详解 diff 命令详解 【自注:】 1,还有个colordiff命令,用颜色标识不同的地方。需要先安装 2,diff normal模式中 2,5表示从第二行到第五行 3,diff -c 模式中,2,5表示从第二行到第五行 4,diff -u模式中,2,5表示从第二行开始的连续5行,即第2,3,4,5,6行 1.概述 本文将要讨论的是diff命令,diff用来比较两个文件。当然文件比较的工具很多,wi... 阅读详情

相关推荐

别再硬编码了!Flowable工作流动态审批人配置全解析(Spring Boot集成版)

本文深入解析Flowable工作流在Spring Boot中的动态审批人配置技术,通过角色、部门等变量实现审批流程的灵活设计。文章详细介绍了架构原理、前端配置映射、动态候选组解析及查询优化方案,帮助企业提升审批流程的适应性和维护效率。

weixin_30919571的博客 135

diff(1) command

diff(different)命令是以逐行的方式,比较文本文件的异同。如果给定的文件名是 -,表示从标准输入读取内容。如果给定的文件是目录,则将会比较该目录中具有相同文件名的文件,默认情况下不会对其子目录文件进行任何比较操作。正常格式(选项 --normal )并列格式(选项 -y, --side-by-side)上下文格式(选项 -C NUM, -c, --context[=NUM])合并格式(选项 -U NUM, -u, --unified[=NUM])

Doublelv 的博客专栏。 7157

Hand-Eye 标定误差分析:从理论到 C++ 实现

本文深入探讨了机器人手眼标定中的核心环节——误差分析。文章从AX=XB方程的理论残差出发,详细解析了旋转与平移误差的数学定义与物理意义,并提供了一个工业级的C++实现代码,用于计算重投影误差。通过误差分析,工程师可以量化标定精度,诊断问题根源,从而确保视觉引导机器人系统在实际应用中的可靠性与精确性。

c7d8e的博客 695

Linux系统之diff命令的基本使用

Linux系统之diff命令的基本使用

jks212454的博客 8165

将pytroch模型转为paddlelite模型并集成到android程序中

在android中使用paddlelite加载yolov5模型识别opencv读取的摄像头信息

qq_56460466的博客 1555

DeepSeek-OCR 本地部署使用教程(附完整环境配置与推理示例)

DeepSeek-OCR是由DeepSeek AI推出的开源OCR模型,支持高精度文档识别与结构化输出(如Markdown转换)。本文提供了详细的本地部署指南,包括系统要求(推荐Linux+A100 GPU)、环境配置(Python 3.12.9+PyTorch 2.6.0+CUDA 11.8)、模型下载及两种推理方式:高性能的vLLM(适合批量处理)和灵活的Transformers(适合调试)。支持多种分辨率模式和提示词模板,适用于合同识别、PDF转换等场景。常见问题包括显存优化和性能调优建议。

qq_58607032的博客 6721

linux常用命令diff

Linux diff (diff 即 different 简写)命令用于比较文件的差异。diff 以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录diff file_1 file_2 diff 就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。参数:-<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用;-a或--text:diff预设只会逐行比较文本文件;

dengjianglili的博客 9967

5nm制程的CV5芯片实测:用它给无人机做8K拍摄和实时避障,功耗和性能到底怎么样?

本文深度评测了5nm制程的CV5芯片在无人机8K拍摄和实时避障中的表现。通过实测数据展示了CV5的异构计算架构、8K视频编码性能和CVflow®AI引擎的加速效果,同时提供了开发中的优化技巧和散热建议,为无人机开发者提供了实用的参考。

weixin_30861797的博客 358

Linux文本比较指令(diff,cmp)详解

一、文本文件比较命令diff 1>diff命令的功能 Linux中diff命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。 2>语法 diff [options] file1 file2 该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用”-”表示file1或file2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。 3&

weixin_52323930的博客 2371

PSINS工具箱学习(四)捷联惯导更新算法

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning。

实践出真理,接毕设/课设项目开发指导 607

【毕设实战】基于YOLOv8的HRSC2016船舶智能检测系统开发全指南(含可视化UI界面,打造海事领域高分毕设)

亲爱的同学,通过这篇教程,你已经掌握了“基于YOLOv8的HRSC2016微小船只检测系统”从数据集处理、模型训练到Tkinter界面开发的全流程。这个课题既贴合“海事智能化”的产业战略,又涵盖了“目标检测、深度学习、界面开发”等多个毕设评分点,非常适合作为计算机或海事工程专业的毕业设计。在实践中,你可能会遇到“海面背景复杂导致船只漏检”“微小船只识别精度不足”“UI与模型推理同步卡顿”等挑战——别担心,这些都是技术成长的必经之路。

know_F0727的博客 130

php diff 文本比较,2.1 diff指令:比较文本文件的差异

第2章 文件与目录管理在Linux系统中,用户可以使用指令对文件和目录进行管理。例如,文件和目录的比较、连接、查找功能。最为重要的是通过这些指令可以修改文件和目录的时间、属性及其权限等。在本章中,将具体介绍这些管理命令的原型、参数及使用方法等。2.1 diff指令:比较文本文件的差异【语 法】diff [-abBcdefHilnNpPqrstTuvwy][-][-C][-D][-I][-...

weixin_39798626的博客 605

【软考中级网络工程师】知识点之常用网络诊断和配置命令

本文聚焦软考中级网络工程师必备的网络诊断和配置命令,详细解析 ipconfig、ping、arp 等 11 类核心命令。涵盖各命令的功能、语法、常用参数及应用场景,如 ipconfig 查看配置、ping 测试连通性等。还通过图呈现命令执行逻辑与流程,助读者理解原理。最后结合软考考点回顾重点并提供真题练习,为备考和实际运维提供全面指导,是掌握网络命令的实用参考。

邓邓子的博客 1546

diff命令

Linux diff命令用于比较文件的差异。 diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录 diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--l

Tanhaoyun的博客 957

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

linux_command_比较指令comm、diff

Comm命令 <br />如果想对两个有序的文件进行比较,可以使用comm命令。 <br />语法:comm [- 123 ] file1 file2 <br /><br />说明:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。 <br />选项1、2或3抑制相应的列显示。例如<br />comm - 12就只显

优快云-MarkYang 8795

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux diff 指令

Linux 的 diff 命令是一个用于比较文件或目录差异的实用工具,支持多种输出格式和比较选项。它能够逐行分析文本差异,适用于代码审查、配置管理和版本控制等场景。主要功能包括:基本文件比较(支持普通、上下文和统一格式输出)、递归目录比较、以及忽略空格/大小写等差异的灵活选项。

gongwanzhang的博客 1558

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat char a b c $ cat chardiff a d c 比如,我有两个文件char和chardiff如上,略有不同,就可以用这个命令输出。 $ comm char chardiff a b c d c 如上,看起来输出的乱七八糟,...

机智的程序员小熊 1953

Linux 文本对比 diff

Linux 文本对比 diff

岳来的博客 3424

Linux指令 —— diff、diff3

diff 这是LINUX上一个及其常用但又功能较为繁复的指令,作为新手,很可能被搞懵。 这里我只给出一两种常规的入门用法。 如果想深入了解,文章下面有链接地址,也 可以找man(如果你英文好的话)。 1.定义: diff - 以每一行的方式比较两个文件; 简而言之就是,两份文件,每一行每一行的来比较,有不同的就以某种方式显示出来。 diff 命令用于比较文件的内容,特别是比较两

CPU1994GHz的博客 1448
上一篇: StringUtil工具类解析
下一篇: Zookeeper学习笔记(二)-在Windows下的安装过程及测试
madman0621
博客等级 码龄11年 36粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值