diff

转载 2015年07月09日 16:49:06

假如在同一个目录下有a.txt, b.txt 两个文本文件

a.txt 内容是

aaa

bbb


b.txt内容是

aaa

ccc



import difflib
 
= open('a.txt''U').readlines()
= open('b.txt''U').readlines()
diff = difflib.ndiff(a, b)
 
sys.stdout.writelines(diff)

diff是shell下用来比较两个文件的异同的,正常情况下,都是不加参数直接diff的,今天在论坛上看到一篇关于diff的用法,才发现diff原来有那么多丰富的参数,下次用diff的时候可以来看看。
功能说明:比较文件的差异。
语  法:diff [-abBcdefHilnNpPqrstTuvwy][-][-C ][-D ][-I ][-S ][-W ][-x ][-X ][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
补充说明:diff以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
参  数:
- 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
-a或--text  diff预设只会逐行比较文本文件。
-b或--ignore-space-change  不检查空格字符的不同。
-B或--ignore-blank-lines  不检查空白行。
-c  显示全部内文,并标出不同之处。
-C或--context  与执行"-c-"指令相同。
-d或--minimal  使用不同的演算法,以较小的单位来做比较。
-D或ifdef  此参数的输出格式可用于前置处理器巨集。
-e或--ed  此参数的输出格式可用于ed的script文件。
-f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
-H或--speed-large-files  比较大文件时,可加快速度。
-l或--ignore-matching-lines  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
-i或--ignore-case  不检查大小写的不同。
-l或--paginate  将结果交由pr程序来分页。
-n或--rcs  将比较结果以RCS的格式来显示。
-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
-P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
-q或--brief  仅显示有无差异,不显示详细的信息。
-r或--recursive  比较子目录中的文件。
-s或--report-identical-files  若没有发现任何差异,仍然显示信息。
-S或--starting-file  在比较目录时,从指定的文件开始比较。
-t或--expand-tabs  在输出时,将tab字符展开。
-T或--initial-tab  在每行前面加上tab字符以便对齐。
-u,-U或--unified=  以合并的方式来显示文件内容的不同。
-v或--version  显示版本信息。
-w或--ignore-all-space  忽略全部的空格字符。
-W或--width  在使用-y参数时,指定栏宽。
-x或--exclude  不比较选项中所指定的文件或目录。
-X或--exclude-from  您可以将文件或目录类型存成文本文件,然后在=中指定此文本文件。
-y或--side-by-side  以并列的方式显示文件的异同之处。
--help  显示帮助。
--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
--suppress-common-lines  在使用-y参数时,仅显示不同之处。

读懂 diff 命令

diff是Unix系统的一个很重要的工具程序。 它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入: 1  $diff< ...
  • evenness
  • evenness
  • 2012年09月07日 15:10
  • 8797

浅谈React的diff算法和key属性

React快速的致胜法宝是虚拟DOM及其高效的diff算法。 可以无需担心性能问题而“随时”刷新整个页面,虚拟DOM可以确保只对界面上真正变化的部分进行实际的DOM操作。虽然在实际开发中,基本无需关心...
  • zhouziyu2011
  • zhouziyu2011
  • 2017年05月08日 16:52
  • 1628

git diff输出信息的含义

问题:使用git diff命令输出信息那些符号是什么意思? 版本管理系统git,使用的是合并格式diff的变体。   $ git diff 显示结果如下:   diff --...
  • zcube
  • zcube
  • 2014年12月29日 22:07
  • 8073

Jmeter 使用实践 - 接口 diff 测试

大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求。相比其他工具,Jmeter 入门门槛较低,安装也比较方便,根据自己...
  • wangpeng198688
  • wangpeng198688
  • 2016年03月21日 18:06
  • 565

diff命令详解

diff命令详解 转自:http://www.flatws.cn/article/program/shell/2011-02-23/14053.html 一、文本文件比较命令dif...
  • yi412
  • yi412
  • 2015年08月15日 10:20
  • 678

linux diff命令详解

diff程序是linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件(本文中的a.c、b.c可以理解为两个版本的同一个文件,b.c是在a.c的基础上的修正版)以找到改动的地方。d...
  • mldxs
  • mldxs
  • 2013年03月13日 18:22
  • 6898

【git】看懂git diff

git diff 可以用来比较: 1.staging area和working area的文件 (无其他参数时) [plain] view plaincopypr...
  • shuhuai007
  • shuhuai007
  • 2013年03月14日 17:15
  • 3961

Linux下使用diff和patch制作及打补丁(已经实践可行!)

在做开发的过程中难免需要给内核及下载的一些源码打补丁,所以我们先学习下Linux下使用如如何使用diff制作补丁以及如何使用patch打补丁。 通过diff命令比较出新旧版本之间的差异,并以pa...
  • tao_627
  • tao_627
  • 2016年10月26日 22:37
  • 1844

Git:关于git diff 是和谁对比的问题

今天看了廖雪峰的关于git的教程,发现了一个diff问题,弄了很多遍,终于弄清了,git diff 到底是和暂存区(index)还是和版本库对比的问题,记录一下。首先我新创建一个文件,如下图所示:to...
  • whbing1471
  • whbing1471
  • 2016年07月29日 15:28
  • 705

!!!!diff使用--exclude选项在比较时去除.svn文件夹.txt

http://blog.chinaunix.net/uid-20564848-id-73079.html diff使用--exclude选项在比较时去除.svn文件夹  2008-03-0...
  • wb4916
  • wb4916
  • 2015年05月19日 14:34
  • 935
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:diff
举报原因:
原因补充:

(最多只允许输入30个字)