一、文本文件比较命令diff
1>diff命令的功能
Linux中diff命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。
2>语法
diff [options] file1 file2
该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用”-”表示file1或file2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。
3>[options]主要参数
-a:将所有文件当作文本文件来处理。
-b或–ignore-space-change 忽略空格造成的不同。
-B或–ignore-blank-lines 忽略空行造成的不同。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
-I:忽略大小写的变化。
-n –rcs:输出RCS格式。
-N或–new-file 在比较目录时,若文件A仅出现在某个目录中,会显示:Only in目录;文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-r或–recursive 比较子目录中的文件。
-u,-U<列数>或–unified=<列数> 以合并的方式来显示文件内容的不同。
4>使用方法的实例说明
例如: diff /usr/xu mine
把目录/usr/xu 中名为mine的文件与当前目录中的mine文件进行比较。
通常输出由下述形式的行组成:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4 这些行类似ed命令把filel转换成file2。字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操作。
在上述形式的每一行的后面跟随受到影响的若干行,以”<”打头的行属于第一个文件,以”>”打头的行属于第二个文件。
diff能区别块和字符设备文件以及FIFO(管道文件),不会把它们与普通文件进行比较。
如果file1和file2都是目录,则diff会产生很多信息。
5>diff最常用的功能
diff有很多功能平时我们不常用到,最常用的功能莫过于生成patch文件了:
diff -urN old/ new/ > mysoft.patch
参数 -u 表示使用 unified 格式,-r 表示比较目录,-N 表示将不存在的文件当作空文件处理,这样新添加的文件也会出现在patch文件中。
然后在需要应用patch的地方使用下述命令即可:
patch -p0 < mysoft.patch
diff 的 -y 命令(长格式为 –side-by-side)可以将屏幕分成左右两部分,来比较两个文件之间的差异。许多图形化的比较工具都有这个功能,但如果只能使用命令行,这个参数 就相当有用了。如果要改变左右各部分的宽度,可以通过 -W (–width)参数来指定。
–ignore-blank-lines 参数可以不检查空白行。这样DOS格式和Unix格式的文件互相比较时,就不至于因为换行符不一致而出现大量的差异。
二、二进制文件比较命令cmp
用途
比较两个文件的内容并报告不同的第一个字符。
语法
cmp [ -l | -s ] File1 File2
描述
cmp 命令比较 File1 和 File2 参数指定的文件,并将结果写到标准输出。如果为 File1 或 File2 参数指定 -(减号),则 cmp 命令读取该文件的标准输入。只可以从标准输入读取一个文件。在缺省条件下,如果文件相同,则 cmp 命令不显示任何内容。如果它们不同,则 cmp 命令显示发生不同的第一个字节数和行数。如果指定了 -l 标志,并且如果一个文件是另一文件的初始后继(即,如果在查找任何差别之前,cmp 命令读取文件中的文件结束符),则 cmp 命令记下它。通常,使用 cmp 命令比较非文本文件,使用 diff 命令比较文本文件。
标志
-l 对于每个不同,(小写字母 L)显示十进制的字节数和八进制的不同字节。
-s 只返回退出值。值 0 指示相同的文件;值 1 指示不同的文件;值 2 指示不可访问的文件或缺少选项。
退出状态
该命令返回以下退出值:
0 文件相同。
1 文件不同。即使一个文件是另一个文件的初始后继(一个文件与另一个文件的第一个部分相同),也给出该值。
>1 发生错误。
示例
1. 要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:
prog.o.bak prog.o differ: char 4, line 1
如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。
2. 要显示不同字节的每个对,请输入:
cmp -l prog.o.bak prog.o
这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。例如,如果第五个字节在 prog.o.bak 中是八进制 101,在 prog.o 中是 141,则 cmp 命令显示:
5 101 141
3. 要比较两个文件,而不写任何消息,请输入:
cmp -s prog.c.bak prog.c
这样,如果文件相同,则给出值 0,如果不同,则给出值 1,或者如果发生错误,则给出值 2。该命令形式通常用在 shell 步骤中。例如:
if cmp -s prog.c.bak prog.c
then
echo No change
fi
如果两个文件相同,则该部分的 shell 步骤显示 No change。
- 浏览: 82751 次
- 来自: 上海
文章分类
最新评论
发表评论
-
linux 环境下修改readonly变量(例如TMOUT)
2016-01-20 20:23 4684$ readonly PI=3.14 $ unset P ... -
嵌入式汇编
2015-01-24 15:54 606转自<http://blog.csdn.net ... -
linux版本信息以及x86与x86_64的区别
2015-01-18 11:53 779转自<http://www.cnblogs. ... -
linux启动
2015-01-17 14:22 370转自<http://www.docin.com/p-5 ... -
VMWare安装Ubuntu 12.04开启虚拟机的Unity Mode模式
2014-10-11 08:59 591转自<http://www.2cto.com/os/ ... -
linux fork函数
2014-09-29 13:58 607转自<http://blog.csdn.net/jas ... -
sudo与sudoers
2014-08-04 18:28 598from<http://www.cnblogs.com ... -
unix编程艺术中的17点编程原则--设计开发者的至高准则
2014-07-20 11:08 526转自<http://blog.csdn.net/v_j ... -
ubuntu update缺少公钥解决方法 NO_PUBKEY
2014-07-17 13:42 746转自<http://chenpeng.info/ht ... -
linux重定向
2014-07-14 20:29 527转自<http://www.cnblogs.com/l ... -
硬盘安装linux
2014-07-08 18:49 443可以参考http://jingyan.baidu.com/a ... -
查看登陆的几个常用命令
2014-07-05 13:17 375last lastlog dmesg dmesg | ... -
linux上几个硬件命令
2014-07-05 13:15 425hdparm :观察硬盘的种种信息; lspci : ... -
万用字符与特殊字符
2014-07-08 09:28 520* :万用字符,代表0个或多个字符(或数字) ? :万 ... -
linux下一些常用的关机/重启命令
2014-07-04 14:09 523在linux下一些常用的关机/重启命令有shutdow ... -
linux 软件安装
2014-07-03 09:41 454一、rpm包安装方式步 ... -
linux需要备份的目录
2014-07-03 09:46 990/etc/整个目录 /home整个目录 /var/sp ... -
linux学习网站
2014-07-03 09:46 513自由软件技术交流网:http://freesf.tnc.e ... -
LINUX下各个目录详细介绍
2014-07-02 22:14 420/bin 这是放例如 ... -
Linux必学的60个命令
2014-07-02 22:02 555转自http://blog.csdn.net/immorta ...
相关推荐
### 三菱PLC比较指令CMP详解 #### 一、引言 在现代工业自动化领域,可编程逻辑控制器(PLC)扮演着极其重要的角色。三菱PLC作为市场上广受欢迎的品牌之一,提供了丰富的指令集来满足各种控制需求。其中,比较指令...
6-4.比较指令CMP_PLC应用指令的功能、用法及在工程中的应用flv,比较指令CMP_PLC应用指令的功能、用法及在工程中的应用
本资源为功能指令MOV传送CMP比较指令PPT课件,主要讲解了功能指令的表达形式、使用要素、分类、传送比较类指令的应用等内容。该课件共10页,涵盖了多个方面的知识点,以下是对该资源的详细解读: 一、功能指令的...
Linux cmp命令用于比较两个文件是否有差异。 当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为...
可编程控制器的CMP比较指令编程实例及仿真 可编程控制器的CMP比较指令编程实例及仿真是指在可编程控制器中使用CMP指令来比较两个确定的数值,并根据比较结果执行不同的操作。本文将通过三菱PLC的编程实例介绍CMP...
本篇PPT主要介绍了几种关键的功能指令,包括MOV(传送指令)、CMP(比较指令)和ZCP(区间比较指令),以及触点形比较指令。这些指令对于理解和编写高效、精确的PLC程序至关重要。 1. **MOV(传送指令)**:MOV指令...
### ARM架构中的CMP指令详解 #### 一、CMP指令概述 在ARM(Advanced RISC Machines)架构中,CMP指令是一种非常重要的操作指令,主要用于比较两个数值。它将一个寄存器的内容与另一个寄存器的内容或者一个立即数...
Linux diff和patch是GNU Diffutils软件包的一部分,这些工具用于展示、比较和合并文件的差异。了解diff的原理和使用方式,可以帮助用户有效地管理和同步文件更改。diff命令可以比较文件之间的差异,并以多种格式输出...
CMP(Compare)指令是另一个关键的比较指令,它用于比较两个数值并根据比较结果设置标志位。CMP指令有多种模式,可以进行大于、小于、等于或不等于的比较,这些比较结果可以作为后续指令的条件,例如跳转、选择性...
CMP工艺过程技术详解 CMP(Chemical Mechanical Polishing,化学机械抛光)是半导体制造中的一个关键工艺过程,旨在实现Wafer表面的平坦化和抛光。CMP工艺过程技术详解PPT旨在为读者提供CMP工艺的详细介绍,涵盖CMP...
3. **CMP 指令**:用于比较两个操作数,不保存结果,但会更新条件标志位。例如: ```assembly CMP R1, R2 ; 比较R1和R2,根据结果更新条件标志位 ``` 除了以上指令,还有其他数据处理指令,如ADD、SUB、MUL、AND...
1.13 cmp指令:比较文件差异 1.14 cp指令:复制 1.15 cpio指令:备份文件 1.16 csplit指令:分割文件 1.17 cut指令:剪切文件 1.18 diff指令:生成差异信息 1.19 diffstat指令:diff结果的统计信息 1.20 dump指令:...
### ARM指令集详解 #### 一、ARM指令集概述 ARM指令集是针对ARM架构处理器设计的一系列机器语言指令,这些指令定义了处理器如何执行计算任务。ARM指令集支持两种不同的指令子集:ARM指令集(32位)和Thumb指令集...
### OD常用汇编指令集详解 #### 概述 本文档旨在详细介绍OD(OllyDbg)中常用的汇编指令集及其应用场景。汇编语言是一种低级编程语言,它为硬件提供了一种直接且高效的控制手段。对于软件逆向工程、调试及底层编程...
`CMP`(Compare)指令则用于比较两个操作数。它并不改变任何寄存器的值,但会根据比较结果设置一些标志位,这些标志位随后可以被其他指令用来决定程序的流程。`CMP`可以比较两个寄存器、一个寄存器和一个立即数,...
1. **数据处理指令**:包括移动(MOV)、加法(ADD)、减法(SUB)、比较(CMP)和逻辑操作(AND、ORR、EOR、BIC等)等指令,用于处理和操作数据。 2. **内存访问指令**:如加载(LDR)和存储(STR),用于从内存中...
【标题】:“三菱GPPW INC和CMP指令运用四”主要涵盖了在三菱PLC编程中如何有效使用GPPW(脉冲写入)指令以及CMP(比较)指令,这两个指令在自动化控制系统的精细化操作中起着关键作用。GPPW用于生成精确的脉冲序列...
### Linux基本指令使用详解 #### 一、简介 在Linux操作系统中,命令行接口(Command Line Interface, CLI)是用户与系统交互的重要方式之一。通过掌握一系列基础命令,用户可以高效地进行文件管理、系统配置等工作。...