一、文本文件比较命令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。
- 浏览: 76979 次
- 来自: 上海
文章分类
最新评论
发表评论
-
linux 环境下修改readonly变量(例如TMOUT)
2016-01-20 20:23 4504$ readonly PI=3.14 $ unset P ... -
嵌入式汇编
2015-01-24 15:54 561转自<http://blog.csdn.net ... -
linux版本信息以及x86与x86_64的区别
2015-01-18 11:53 711转自<http://www.cnblogs. ... -
linux启动
2015-01-17 14:22 334转自<http://www.docin.com/p-5 ... -
VMWare安装Ubuntu 12.04开启虚拟机的Unity Mode模式
2014-10-11 08:59 532转自<http://www.2cto.com/os/ ... -
linux fork函数
2014-09-29 13:58 550转自<http://blog.csdn.net/jas ... -
sudo与sudoers
2014-08-04 18:28 559from<http://www.cnblogs.com ... -
unix编程艺术中的17点编程原则--设计开发者的至高准则
2014-07-20 11:08 480转自<http://blog.csdn.net/v_j ... -
ubuntu update缺少公钥解决方法 NO_PUBKEY
2014-07-17 13:42 689转自<http://chenpeng.info/ht ... -
linux重定向
2014-07-14 20:29 478转自<http://www.cnblogs.com/l ... -
硬盘安装linux
2014-07-08 18:49 395可以参考http://jingyan.baidu.com/a ... -
查看登陆的几个常用命令
2014-07-05 13:17 330last lastlog dmesg dmesg | ... -
linux上几个硬件命令
2014-07-05 13:15 381hdparm :观察硬盘的种种信息; lspci : ... -
万用字符与特殊字符
2014-07-08 09:28 467* :万用字符,代表0个或多个字符(或数字) ? :万 ... -
linux下一些常用的关机/重启命令
2014-07-04 14:09 476在linux下一些常用的关机/重启命令有shutdow ... -
linux 软件安装
2014-07-03 09:41 412一、rpm包安装方式步 ... -
linux需要备份的目录
2014-07-03 09:46 940/etc/整个目录 /home整个目录 /var/sp ... -
linux学习网站
2014-07-03 09:46 470自由软件技术交流网:http://freesf.tnc.e ... -
LINUX下各个目录详细介绍
2014-07-02 22:14 374/bin 这是放例如 ... -
Linux必学的60个命令
2014-07-02 22:02 504转自http://blog.csdn.net/immorta ...
相关推荐
6-4.比较指令CMP_PLC应用指令的功能、用法及在工程中的应用flv,比较指令CMP_PLC应用指令的功能、用法及在工程中的应用
Linux cmp命令用于比较两个文件是否有差异。 当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为...
功能指令MOV传送CMP比较指令PPT课件.pptx
功能指令MOV传送CMP比较指令PPT学习教案.pptx
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指令:...
三菱 GPPW INC和CMP指令运用六rar,三菱 GPPW INC和CMP指令运用六
指令类 arm 开发 CMP指令用于把 一个寄存器的内容和另一个寄存器的内容或立即数进行比较
关于Linux diff & patch的资料,想深入了解diff的童鞋可以收藏下
INC和CMP指令运用三rar,INC和CMP指令运用三
Linux的各种内部命令指令代码!Linux的各种内部命令指令代码!Linux的各种内部命令指令代码!
CMP工艺过程技术详解PPT,化学机械抛光工艺
PLC技术
可编程控制器的CMP比较指令编程实例及仿真 .pptx
三菱 GPPW INC和CMP指令运用四rar,三菱 GPPW INC和CMP指令运用四
比较指令23 CMP 23 CMN23 TST24 TEQ24 乘法指令25 MUL25 MLA25 UMULL25 UMLAL26 SMULL 26 SMLAL 26 ARM 跳转指令27 B27 BL27 BX 27 ARM 协处理器指令28 CDP28 LDC29 STC 29 MCR...
cmp.exe cygwin自带的 类似于Linux 下的 cmp 命令
SUB、SBB指令、CMP、DEC、NEG 二进制乘法指令 MUL、IMUL 二进制除法指令 DIV、IDIV指令 十进制算术运算 非压缩BCD码调整指令AAA、AAS、AAM、AAD 压缩BCD码调整指令DAA、DAS 位 运算 ...
CMP4网络电视
CMP指令应用脉冲定位控制程序zip,CMP指令应用脉冲定位控制程序