linux下比较两个文本文件的不同——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格式的文件互相比较时,就不至于因为换行符不一致而出现大量的差异。
本文来源于时光漂流瓶 http://www.9usb.net , 原文地址: http://www.9usb.net/200903/linux-diff.html
linux下比较两个文本文件的不同——diff命令的更多相关文章
- Linux 下启动两个tomcat
Linux 下启动两个tomcat 闲来无事学习nginx,想要配置个load balance.可是先决条件是:得有两个web容器.两个电脑是不用想了.只能想办法在一个机器上启动两个tomcat.原以 ...
- Linux下配置两个或多个Tomcat启动
Linux下配置两个或多个Tomcat启动 (2012-08-14 11:59:31) 转载▼ 标签: 杂谈 分类: linux_tomcat 步骤如下: (1)修改/etc/profile文件.添加 ...
- linux下监控进程需掌握的四个命令
linux下监控进程需掌握的四个命令 在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的 ...
- Linux 下 expect 脚本语言中交互处理常用命令
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...
- Linux下lshw,lsscsi,lscpu,lsusb,lsblk硬件查看命令
Linux下lshw,lsscsi,lscpu,lsusb,lsblk硬件查看命令 2016-12-14 何敏杰 1条评论 544次浏览 注意:如有提示命令找不到command not found ...
- linux日常---1、linux下安装、查看、卸载包常用命令
linux日常---1.linux下安装.查看.卸载包常用命令 一.总结 一句话总结: 对比学习 1.linux如何查看系统中安装的程序? rpm -qa # 查看所有安装的软件包 2.linux ...
- Linux下使用两个线程协作完成一个任务的简易实现
刚解决了之前的那个Linux下Pthread库的问题,这次就来使用两个线程来协作,共同完成一个求和的任务. 打一下基础吧 本次需要使用到的知识点有: lpthread,编译的时候用到,相当于一个声明的 ...
- Linux下的两种磁盘分区工具的使用
如何使用fdisk和parted分区工具来进行硬盘分区,下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法: ----------fdisk分区工具---------- ...
- Linux 下的两种分层存储方案
背景介绍 随着固态存储技术 (SSD),SAS 技术的不断进步和普及,存储介质的种类更加多样,采用不同存储介质和接口的存储设备的性能出现了很大差异.SSD 相较于传统的机械硬盘,由于没有磁盘的机械转动 ...
随机推荐
- JavaScript--XML DOM 总结
XML DOM 2018-09-04 XML简介 1.什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML ...
- 使用nagios监控ssl证书过期时间
1.编写监控脚本. # vim check_ssl_expiry.sh #!/bin/bash STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 Host=$1 ...
- java -server 和 -client 的不同,及 java -server 时抛错原因
在dos窗口运行:java -server Error: missing `server' JVM at `C:\Program Files\Java\jre7\bin\server\jvm.dll' ...
- 辗转相除法求最大公约数(gcd)的斐波那契数列(fib)最坏时间复杂度的证明
下载地址:http://pan.baidu.com/s/1jIt6UlK
- Solr7.1---简单搜索
本文环境基于上一节. and搜索 两种用法: apple AND banana +apple +banana [+是一元操作符,要求求后面的查询部分必需在文档中出现.AND是二元操作符,要求其左右两端 ...
- nginx下后端节点realserverweb健康检测模块ngx_http_upstream_check_module
本文章收录做资料使用,非本人原创,特此说明. 公司前一段对业务线上的nginx做了整理,重点就是对nginx上负载均衡器的后端节点做健康检查.目前,nginx对后端节点健康检查的方式主要有3种,这里列 ...
- 在子类中调用父类的方法super
1.没有super之前,在子类里面需要父类里面的逻辑,但是我们是通过派生(自己定义了一个init,增加了一条line) class vehichle:#定义一个交通工具的类 Country=" ...
- 20190313 org.apache.commons.lang3.builder.EqualsBuilder的两种典型用法
org.apache.commons.lang3.builder.EqualsBuilder的两种典型用法 public boolean equals(Object obj) { if (obj == ...
- Scala进阶之路-Scala高级语法之隐式(implicit)详解
Scala进阶之路-Scala高级语法之隐式(implicit)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一 ...
- H3C配置FTP服务器
H3C配置FTP服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.FTP协议简介 1.FTP协议是互联网上广泛使用的文件传输协议 FTP文件传送协议(File Transf ...