11.Linux文件管理命令---diff比较两个文件

news2024/11/25 2:50:14

11.Linux文件管理命令—diff比较两个文件

文章目录

  • diff比较两个文件
  • 练习案例

diff比较两个文件

作用:找出两个文件的不同点。
用法:diff [选项] 源文件 目标文件
主要选项如下。

下面是 GNU 所接受的 diff 所有选项的概要。大多数选项有两个相同的名字,一个是单个 地跟在“-”后面的字母,另一个是由“–”引出的长名字。多个单字母选项(除非它们产生歧 义)能够组合为单行的命令行语法,-ac 等同于 -a –c。长命名的选项能被缩短到它们的名字的 任何唯一的前缀。用 [和 ] 括起来显示产生歧义的选项。

命令描述
-行数(一个整数)显示上下文行数(一个整数)。这个选项自身没有指
定输出格式,这是没有效果的,除非和-c 或者-u 组合使用。
这是已废置的选项,对于正确的操作,上下文至少要有两行
-a所有的文件都视为文本文件来逐行比较,甚至它们似乎不是文本文件。
-b忽略空格引起的变化。
-B忽略插入、删除空行引起的变化。
--brief仅报告文件是否相异,在乎差别的细节。
-c使用上下文输出格式。
-C行数(一个整数)。
--context[=lines]使用上下文输出格式,显示以指定行数(一个整数),或者是三行(当
行数没有给出时)。对于正确的操作,上下文至少要有两行。
--changed-group-format=format使用 format 输出一组包含两个文件的不同处的行,其格
式是 if-then-else。
-d改变算法也许发现变化的一个更小的集合,这个选项会使 diff 命令执行速度变慢。
-D name合并 if-then-else 格式输出,预处理宏(由 name 参数提供)条件。
-e,--ed输出为一个有效的 ed 脚本。
--exclude=pattern比较目录的时候,忽略和目录中与 pattern(样式)相匹配的。
--exclude-from=file比较目录的时候,忽略和目录中与任何包含在 file(文件)中的样
式相匹配的文件和目录。
--expand-tabs在输出时扩展 tab 为空格,保护输入文件的 tab 对齐方式。
-f产生一个类似 ed 脚本的输出,但是它们在文件中出现的顺序有所改变。
-F regexp在上下文和统一格式中,对于每一大块的不同,
显示出匹配 regexp.的一些前面的行。
--forward -ed产生类似 ed 脚本的输出,但是它们在文件中出现的顺序有所改变。
-H使用启发规则加速操作那些有许多离散的小差异的大文件。
--horizon-lines=lines比较给定行数的有共同前缀的最后行,以及有共同后缀的最前行。
-i忽略大小写。
-I regexp忽略由插入或删除行(由 regexp 参数提供参考)带来的改变。
--ifdef=name合并 if-then-else 格式输出,预处理宏(由 name 参数提供)条件。
--ignore-all-space在比较行的时候忽略空白。
--ignore-blank-lines忽略插入和删除空行。
--ignore-case忽略大小写。
--ignore-matching-lines=regexp忽略插入、删除行。
--ignore-space-change忽略空白的数量。
--initial-tab在文本行(无论是常规的还是格式化的前后文关系)前输出 tab 代替空格。
引起的原因是 tab 对齐方式看上去像是常规的一样。
-l产生通过 pr 编码的输出。
-L label--label=label使用 label 给出的字符在文件头代替文件名输出。
--left-column以并列方式印出两个公共行的左边。
--line-format=format使用 format 格式输出所有的行
--minimal改变算法也许发现变化的一个更小的集合。这会使 diff 变慢(有时更慢)。
命令描述
-n输出 RC-格式 diffs;除了每条指令指定的行数受影响外,像-f 一样。
-N在比较目录时,若文件 A 仅出现在某个目录中,预设会显示 Only in 目录;文件 A
若使用-N 参数,则 diff 会将文件 A 与一个空白的文件比较。
--new-file在目录比较中,如果哪个文件只在其中的一个目录中找到,
那么这个文件被视为在另一个目录中是一个空文件。
--new-group-format=format使用 format 以 if-then-else 格式输出只在第二个
文件中取出的一个行组。
--new-line-format=format使用 format 以 if-then-else 格式输出只在第二个文件中取出的一行。
--old-group-format=format使用 format 以 if-then-else 格式输出只在第一个文件中取出的一个行组。
--old-line-format=format使用 format 以 if-then-else 格式输出只在第一个文件中取出的一行。
-p显示带有 c 函数的改变。
P在目录比较中,如果哪个文件只在其中的一个目录中找到,
那么它被视为在另一个目录中是一个空文件。
–paginate产生通过 pr 编码的输出。
-q仅报告文件是否相异,不报告详细的差异。
-r当比较目录时,递归比较任何找到的子目录。
--rcs输出 RC-格式 diffs;除了每条指令指定的行数受影响外,像-f 一样。
--recursive当比较目录时,递归比较任何找到的子目录。
--report-identical-files若没有发现任何差异,仍然显示信息。
-s报告两个文件相同。
-S file当比较目录时,由 file 开始。这用于继续中断了的比较。
--sdiff-merge-assist打印附加的信息去帮助 sdiff.sdiff 在运行 diff 时使用这些选项。
这些选项不是特意为使用者直接使用而准备的。
--show-c-function显示带有 c 函数的改变。
--show-function-line=regexp在上下文和统一的格式,对于每一大块的差别,显示出匹配 regexp.的一些前面的行。
--side-by-side使用并列的输出格式。
--speed-large-files使用启发规则加速操作那些有许多离散的小差异的大文件。
--starting-file=file当比较目录时,由 file 开始。这用于继续中断了的比较。
--suppress-common-lines在并列格式中不打印出公共行。
-t在输出时扩展 tab 为空格,保护输入文件的 tab 对齐方式。
-T在文本行(无论是常规的还是格式化的前后文关系)前输出 tab
代替空格引起的原因是 tab 对齐方式看上去像是常规的一样。
--text所有的文件都视为文本文件来逐行比较,甚至它们似乎不是文本文件
命令描述
-u使用统一的输出格式。
--unchanged-group-format=format使用 format 输出两个文件的公共行组,其格式是if-then-else。
--unchanged-line-format=format使用 format 输出两个文件的公共行,其格式是if-then-else。
--unidirectional-new-file在目录比较中,如果哪个文件只在其中的一个目录中找到,那
么它被视为在另一个目录中是一个空文件。
-U lines以合并的方式来显示文件内容的不同。
--unified[=lines]使用前后关系格式输出,显示指定行数(一个整数)或者三行(当行
数没有给出时)。对于正确的操作,上下文至少要有两行。
--version输出 diff 版本号。
-w在比较行时忽略空格。
-W columns指定栏宽。
--width=columns在并列格式输出时,使用指定的列宽。
-x pattern比较目录的时候,忽略和目录中与 pattern(样式)相匹配的。
-X file比较目录的时候,忽略和目录中与任何包含在 file(文件)
中的样式相匹配的文件和目录。
-y使用并列格式输出。

练习案例

使用并排(side-by-side)用法查看文件差异,如图 2-5 所示。

在这里插入图片描述

这是两个相似却又有所不同的文件:hello.cpp 和 hello1.cpp,使用并排(side-by-side)用法 可以直观地比较源代码文件的差异。尽管出现了截行,还是可以非常清楚地显示两个文件的区别。-W 选项指定输出列的宽度。diff 接受这个宽度,并且分配给两个文件各 40 行。字符“>” 表示该行在目的文件中,字符“<”表示该行在源文件中,字符“|”标记出两个文件中不相同 的行。

注意

diff 以逐行的方式比较文本文件的异同处。如果源文件和目标文件都是目录,则
diff 比较两个目录中相应的文件,按照字母次序排序。diff 的输出用法有 3 种,包括
列举模式、命令模式和上下文模式,其中命令模式又分为两种,即 ed 命令模式和 RCS
(Revision Control System,版本控制系统)命令模式

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

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

相关文章

单机模拟集群(三主两从)

引言 操作系统环境&#xff1a;Ubuntu 20.04 Redis版本&#xff1a;6.2.8 准备工作 如果已经安装过了&#xff0c;找到自己的安装路径。如果没有安装过&#xff0c;去官网下载 当前最新版本是7.0&#xff0c;我这里用的是6.0&#xff0c;下载 redis-6.2.8.tar.gz&#xff0c…

CAPL学习之路-测试功能集函数(测试报告部分)

测试功能集函数用于测试用例的实现,主要使用场景在test module和test unit模块的capl中 。所以千万不要在网络节点的CAPL脚本中使用,不然会报错。比如TestWaitForTimeout()函数,等待指定的时间 在网络节点的capl脚本中使用时会报错: 在test module节点的capl脚本中使用时正…

SpreadJS集算表联动数据透视表,高效实现前端数据多维分析

在做一些财务、供应链、资产管理等系统时&#xff0c;由于业务人员线下都是采用Excel来完成的&#xff0c;因此就需要将Excel中业务人员使用的功能都能在Web端系统实现&#xff0c;整体上的实现方案有三种&#xff1a; 完全自研一套具备Excel功能的组件&#xff1b;使用成品软…

Linux-tar打包与解压命令

tar命令位于/bin目录下&#xff0c;它能够将用户所指定的文件或目录打包成一个文件&#xff0c;但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件&#xff0c;再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。 常用参数&#xff1a; -c&a…

布隆过滤器【美与不美之谈】

什么是布隆过滤器 布隆过滤器其实本质上来讲就是一种巧妙的数据结构&#xff0c;特点就是高效的插入和查询。 它能告诉我们&#xff1a;什么一定不存在&#xff0c;或者什么可能会存在 总结&#xff1a;布隆过滤器是概率性的。它只能告诉我们什么一定不存在&#xff0c;或者…

科技向“实”万物生长,2023年云计算五大技术趋势展望

科技云报道原创。 近日&#xff0c;全球最大的专业技术组织IEEE(电气电子工程师学会)发布了《IEEE全球调研&#xff1a;科技在2023年及未来的影响》。根据相关调研显示&#xff0c;云计算(40%)、5G(38%)、元宇宙(37%)将成为影响2023年最重要的技术&#xff0c;其中云计算位居首…

算法---模拟(2)

目录 一、模拟算法题目 &#xff08;1&#xff09;神奇的幻方 &#xff08;2&#xff09;Proceting the Flower &#xff08;3&#xff09;排座椅 &#xff08;4&#xff09;国王的游戏 &#xff08;5&#xff09;字典序最大的子序列 一、模拟算法题目 &#xff08;1&…

Spring源码下载

一、Spring | Home 二、Projects->Spring Framework 三、点击小猫图片进入Spring Framework的代码仓 四、选择感兴趣的分支

如何实现高性能点赞(二)

1.3 Redis 的数据结构类型 Redis 可以存储键与5种不同数据结构类型之间的映射&#xff0c;这5种数据结构类型分别为String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Set&#xff08;集合&#xff09;、Hash&#xff08;散列&#xff09;和 Zset&…

Mac M2芯 超详细k8s集群实战 - kubeadm

概述 我们准备搭建kubeadm的masterworker集群&#xff0c;实现k8s集群&#xff0c;master、worker在虚拟机上来执行&#xff0c;中间遇到了超级多的坑&#xff0c;都搞定了之后&#xff0c;在这里系统的总结一下&#xff0c;这也是一篇学习笔记。 这篇比较难搞&#xff0c;如…

【网络安全】Fastjson的反序列化漏洞复现

1.漏洞概述 Fastjson提供了autotype功能&#xff0c;允许用户在反序列化数据中通过“type”指定反序列化的类型&#xff0c;Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法&#xff0c;那么当组件开启了autotype功能并且反序列化不可信数据时&…

qt简单UI使用

geometry设置窗口大小 font字体大小 text改文件名

本地使用隧道或代理访问云服务器数据库

本地使用代理访问云服务器数据库 场景&#xff1a; 项目的测试环境是部署至云服务器上的&#xff0c;有时候云服务器的项目测试出现了一些问题&#xff0c;为了方便复现就在本地直连云服务器的数据库&#xff08;mysql服务器&#xff09;。但是云服务器是有三台机子&#xff0…

性能测试工程师技术履历表

技术履历表 基本情况 姓名 XXX 年龄 26 性别 男 工作年限 3-4 岗位 性能测试工程师 毕业院校和专业 武汉软件工程职业学院 学历 大专 技能评价 1、熟悉基于Http&#xff0c;TCP等协议的脚本开发。 2、 熟练掌握&#xff1a;Loadrunner等压测工具。 3、 掌握Linu…

Echosync 一款优秀的文件夹同步和备份软件

Echosync 一款优秀的文件夹同步和备份软件 通过执行差异数据备份、文件同步&#xff0c;这样可以避免传递自上次备份以来所做的更改&#xff0c;Echosync能够检测到移动或重命名自上次备份的文件。 下载 Echosync 软件介绍 VHD中备份文件 你的文件可以保存到单个 VHD 文件…

RK3568 ov5695摄像头

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、什么是mipi接口&#xff1f;二、摄像头是如何把数据给到RK3568,又是如何处理硬件连接关系图&#xff1a;图像数据的来龙去脉代码路径三、如何移植修改设备树…

高通开发系列 - 数字和模拟codec驱动

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 MSM89XX音频硬件框架Linux kernel驱动LPASS的地址空间PM和PMI的区别PM8953简介Slave ID从设备idPM89xx中的模拟codec驱动准备codec的驱…

进程退出与等待

1️⃣ 进程退出 正常终止 main函数的返回调用exit_exit 异常终止 Ctrl c (信号终止) 1.main函数的返回就是return 0&#xff1b;程序退出这个在高级语言里面就学过了不多说。 2.exit(x)的使用如下 第一次测试&#xff1a;错误码与main函数里面打印的值。 第二次测试&#xf…

[oeasy]python0033_任务管理_jobs_切换任务_进程树结构_fg

查看进程 回忆上次内容 上次先进程查询 ps -elf 查看所有进程信息ps -lf 查看本终端相关进程信息 杀死进程 kill -9 PID 给进程发送死亡信号 运行多个 python3 show_time.py 的话 各个进程独立python3 show_time.py 大概 8M各占内存这些进程之间是什么关系呢&#xff1f;&…

秦海璐、宋轶现身,岳云鹏孙越成谜,央视春晚第一次彩排姗姗来迟

最近一段时间&#xff0c;全国各地的朋友都在积极行动&#xff0c;都想推迟成为小阳人的时间&#xff0c;却险些忘了一件大事。伴随着春节的临近&#xff0c;每年的央视春晚都倍受期待&#xff0c;今年当然也不例外&#xff0c;可是却一直没有央视春晚的消息。 就在大家都认为&…