【Linux】【命令】diff

diff

  • Descriptions
  • Arguments
  • Examples
    • 直接使用diff命令
    • -u 输出格式
    • -c 输出格式
    • 并列输出
    • -s 和 -q
  • 脚本示例
    • 示例1:目录及文件差异


Descriptions


diff命令用于对比两个文件或者两个文件夹的不同之处,求基本语法如下所示:

diff [OPTION]... FILES

Compare FILES line by line.【逐行对比】

FILES 可以有四种情况:① FILE1 FILE2;② DIR1 DIR2;③ DIR FILE…;④ FILE… DIR


Arguments


一些常用的参数下表所示。

参数作用
b忽略所有空白字符的差别,包括制表符和空格
B忽略空白行
u统一格式输出,这种格式提供了一种更连续、更易读的显示方式
c上下文格式输出,类似于 -u,但显示的上下文行数更多
iignore-case,不检查大小写的不同
r比较子目录中的文件
y以并列的方式显示文件的异同之处
w在使用 -y 参数时,指定栏宽
N在比较目录时,如果文件在另一个文件中不存在,则认为文件内容为空
q只报告文件是否相同,不显示具体的差异
s如果文件相同则报告,否则以普通格式输出不同之处

Examples


用于测试的原始文件

在这里插入图片描述


直接使用diff命令


只显示不同之处。

在这里插入图片描述

在这里,红色方框中的内容表示的是两个文件中不同之处所在的行号。例如,16c14 指的是第一个文件的 16 行和第二个文件的14行不同。

< 后面的是第一个文件(左边)中的内容,>对应的是第二个(右边)文件中的内容。

两个文件的 4,5 行是相同的,在这里就没有显示出来。


-u 输出格式


不同之处分别显示,并使用 + 和 - 标识不同的文件内容,相同之处则只显示一次。

在这里插入图片描述


-c 输出格式


显示两个文件中的所有内容,不同之处用 ! 标记。

在这里插入图片描述


并列输出


在这里插入图片描述

在这里插入图片描述

| 表示两个文件的不同之处,< 表示后面文件比前面文件少了1行内容,> 表示后面文件比前面文件多了一行内容


-s 和 -q


(test2 和 test 相同,test_1 和 test 不相同。)

在这里插入图片描述


脚本示例


基于 diff 命令的一些脚本。


示例1:目录及文件差异


场景:团队中的 A 和 B 分别在自己的分支上开发新功能。当他们准备将各自的分支合并到主分支时,遇到了一些合并冲突。项目管理者要求他们提交各自分支与主分支的差异报告,以便进行代码审查和冲突解决。

任务:① 使用diff命令对比Alice和Bob的分支与主分支之间的所有文件差异;② 输出的报告应该包括哪些文件被修改、新增或删除,以及具体修改的内容;③ 生成的报告应该易于阅读,以便团队成员可以快速地识别关键信息。

实现

#!/bin/bash# Define work directory
main_branch_dir="/path/to/main/branch"
feaure_branch_dir="/path/to/user/branch"
diff_report="diff_report.rpt"# clear
>$diff_report# Compare Directory
echo "Generating diff report between feature branch and main branch..." >> $diff_report
diff -urN $main_branch_dir $feaure_branch_dir >> $diff_report# Report Difference
if[ $? -eq 0 ];then
echo "No differences found." >> $diff_report
else
echo "Differences found. See report below for details." >> $diff_report
fiecho "Diff report generated at: $diff_report"

说明

  1. > 或者 >> 是将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)。

    > 是覆盖,>> 是追加。

    所以 >$diff_report 将一个空的内容以覆盖的方式写道一个文件中,就相当是于清空该文件。【有待确认,自己在命令行试了一项,会报错】

  2. $?是上一条命令的返回值,或者说是命令的返回状态,0表示没有错误,其他任何值表明有错误。

  3. 使用>>的时候,echo命令指定的内容不会显示在 Terminal。所以这个脚本还可以优化,如果有差异,在 Termial 给出 rpt 的位置,如果没有差异,其实只显示结果就可以了。

  4. 如果只是想查看不同,vimdiff 其实更加方便,显示效果更好。但是 diff 可以用于脚本的编写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/57199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ue5 扇形射线检测和鼠标拖拽物体

这里的NumTrace是要发射几根射线&#xff0c;Degrees Per Trace是每根射线之间的角度&#xff0c; 例如 要在角色面前实现一个180度的扇形射线检测&#xff0c;就需这两个变量乘起来等于180 TraceLength是射线的长度 下面是鼠标拖动物体逻辑&#xff0c;很简单 这里的Floor和…

Unity DOTS中的Archetype与Chunk

Unity DOTS中的Archetype与Chunk 在Unity中&#xff0c;archetype&#xff08;原型&#xff09;用来表示一个world里具有相同component类型组合的entity。也就是说&#xff0c;相同component类型的entity在Unity内部会存储到一起&#xff0c;共享同一个archetype。 使用这样的设…

一篇文章入门Pytest!

目录 一、安装 二、语法 三、执行 四、前后置setup/teardown 五、fixture 六、数据驱动 七、报告 一、安装 需要安装的库 pytest pytest-html 生成HTML格式的测试报告 pytest-xdist 用例分布式执行&#xff0c;多CPU分发 pytest-ordering …

【Bug】iOS 不支持运行或调试你的项目的上一个生成版本。 请先确保生成解决方案,再运行或调试它。

文章目录 问题问题代码原因解决处理Bug的具体步骤 问题 在windows以hot restart&#xff08;hot restart不需要mac 而pair to mac需要&#xff09;的方式部署到iphone报&#xff1a;不支持运行或调试你的项目的上一个生成版本。 请先确保生成解决方案&#xff0c;再运行或调试…

基于SSM宠物信息交流平台JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

东芝TB67B008FTG三相无刷马达驱动IC

TB67B008FTG是一款无刷直流电机用的三相PWM驱动器&#xff0c;专为无传感器的应用场景设计。它具有一系列突出的功能&#xff0c;使其在现代电机控制中发挥重要作用&#xff0c;尤其是在需要高效、稳定运行的场景中。本文将详细介绍TB67B008FTG的特点、应用以及它在电机控制领域…

idea和webstorm性能优化

idea和webstorm性能优化 简介 今天打开了idea弹了一个弹窗&#xff0c;大概意思如下。 The IDE has detected Microsoft Defender with Real-Time Protection enabled. It might severely degrade IDE performance. It is recommended to add the following paths to the Def…

【Axure高保真原型】移动案例

今天和大家分享多个常用的移动案例的原型模板&#xff0c;包括轮盘滑动控制元件移动、页面按钮控制元件移动、鼠标单击控制元件移动、元件跟随鼠标移动、鼠标拖动控制元件移动、键盘方向键控制元件移动&#xff0c;具体效果可以点击下方视频观看或打开下方预览地址查看哦 【原…

算法笔记day06

目录 1.添加逗号 2.跳台阶 3.扑克牌顺子 1.添加逗号 添加逗号_牛客题霸_牛客网 算法思路&#xff1a; 按照提议模拟即可&#xff0c;从后向前遍历字符串&#xff0c;遍历三个字符之后&#xff0c;将其插入将这三个字符插入到新的字符串中再加上逗号。 #include <iostrea…

Thymeleaf模板引擎教程(详细总结)

Thymeleaf 是一个服务器端 Java 模板引擎&#xff0c;能够处理 HTML 、 XML 、 CSS 、 JAVASCRIPT 等模板文件。 Thymeleaf 模板可以直接当作静态原型来使用&#xff0c;它主要目标是为开发者的开发工作流程带来优雅的自然 模板&#xff0c;也是 Java 服务器端 HTML5 开…

Docker设置日志滚动

问题描述 Docker 容器中的进程会将打印到控制台(console)的日志保存到容器的目录下&#xff0c;默认的 Docker 配置不带有日志的回滚。会在自己的容器目录下往同一个日志文件中不停写入&#xff0c;最后会导致磁盘空间占满的问题。 解决方案 方案一&#xff1a;全局范围内修…

一文掌握Cephadm部署Ceph存储集群

&#x1f4da; 博客主页&#xff1a; StevenZeng学堂 &#x1f389; 本文专栏: 一文读懂Kubernetes一文读懂Harbor云原生安全实战指南云原生存储实践指南 ❤️ 摘要&#xff1a;随着企业数据量的增长和存储需求的复杂化&#xff0c;Ceph因其高可扩展性和灵活性&#xff0c;能…

网络安全的五大误区,你中招了吗?

在数字化时代&#xff0c;网络安全问题日益突出&#xff0c;许多人在使用网络过程中存在一些误区&#xff0c;导致个人信息泄露、财产损失等问题。本文将为您揭示网络安全的五大误区&#xff0c;帮助您提高安全防范意识。 误区一&#xff1a;使用复杂密码就一定安全 许多人认为…

考研读研生存指南,注意事项

本视频课程&#xff0c;涉及考研读研的方方面面&#xff0c;从考研初试→复试面试→研究生生活→导师相处→论文专利写作混毕业&#xff0c;应有尽有。有了他&#xff0c;你的研究生生涯稳了。 读研考研注意事项&#xff0c;研究生生存指南。_哔哩哔哩_bilibili 一、考研初试注…

临阵磨枪!这份软考中级集成案例分析答题万金油赶紧收藏

在系统集成项目管理工程师案例分析科目的考试中&#xff0c;主要分为“计算题”和“分析题”两大类。 计算题主要围绕着进度管理和成本管理进行出题&#xff0c;比如挣值计算、网络图、关键路径等等&#xff0c;一般占据一道大题。 而分析题呢主要占三道大题&#xff0c;主要…

前端开发 环境变量 process.env.NODE_ENV 是什么

背景&#xff1a; 前端开发过程中&#xff0c;解决Access跨域问题&#xff0c;使用跨域代理&#xff0c;注意这里是指前端的跨域代理&#xff0c;所以这里配置的只适用于开发环境。至于生产环境一般由后端配置跨域代理&#xff0c;一般使用ngnix解决生产环境的跨域代理。 一、…

新款任天堂switch游戏机方案,支持4K60HZ投屏方案,显示器,手柄方案

据传任天堂将推出新的一代的switch掌机&#xff0c;而新款掌机将支持4K60HZ投屏 都2402年了再做1080P确实有点不太象话了 4K60HZ相较于1080P能够提升很多游戏体验&#xff0c;这时不管是HDMI显示器或者是VR眼睛清晰度都会让人舒服很多。 不过新一代的任天堂似乎也在PD协议上…

家政小程序搭建,数字化市场发展下的意义

家政服务行业作为当下社会生活中不可或缺的行业&#xff0c;需求量在逐渐增加&#xff0c;行业发展也趋向多样化。 随着数字化的浪潮&#xff0c;家政行业逐渐向数字化、智能化升级发展&#xff0c;推动行业高质量发展&#xff0c;迎合现代化发展趋势&#xff0c;这一转型为行…

网站分享丨UU在线工具

在日常的工作、学习和生活中&#xff0c;我们常常会遇到各种各样需要借助工具来解决的问题。今天就给大家介绍一个功能强大、涵盖众多实用工具的在线平台 ——UU 在线工具。 一、丰富多样的工具分类 1.文档处理类&#xff1a; PDF 工具&#xff1a;提供了 PDF 转 Word、PDF 合…

IDEA中文乱码�

这篇文章网上到处都是&#xff0c;但我写作的初衷是为了更好地审视自己的作品&#xff0c;并通过不断的总结与反思来提升自我。 文章目录 前言原因分析解决方案一、设置字体为支持中文的字体二、设置字符编码为 UTF-8三、修改 IDEA 配置文件&#xff0c;让其支持中文编码第一种…