diff [选项] … [文件1或目录1] [文件2或目录2](四种组合方式)
说明:diff命令在最简单的情况下,比较两个文件的不同。如果使用”-”代替文件参数,则要比较的内容将来自标准输入。Diff命令是以逐行的方式比较文本文件的异同之处。如果指定比较的是目录的时候,diff命令会比较两个目录下名字相同的文本文件,但不会比较其中子目录。列出不同的二进制文件、公共子目录和只在一个目录出现的文件
(1).选项
-a,--text 把所有文件当做文本文件逐行比较
-b,--ignore-space-change 忽略空格产生的变化
-B,--ignore-blank-lines 忽略空白行的变化
-c,–C NUM,--context[=NUM] 使用上下文输出格式(文件1在上,文件2在下,在差异点会标注出来),输出NUM(默认3)行的上下文(上下各NUM行,不包括差异行)
-d,--minimal 使用不同的算法,努力寻找一个较小的变化集合。这会使diff变慢(有时更慢)
-D NAME,--ifdef=NAME 合并if-then-else格式输出,预处理宏(由NAME参数提供)条件
-e,--ed 输出一个ed格式的脚本文件
-E,--ignore-all-space 忽略由于Tab扩展而导致的变化
-F RE,--show-function-line=RE 在上下文输出格式(文件1在上,文件2在下)和统一输出格式中,对于每一大块的不同,显示出匹配RE(regexp正则表达式)最近的行
-i,--ignore-case 忽略大小写的区别
默认情况下,正则表达式 ^ 和 $ 忽略行结束符,仅分别与整个输入序列的开头和结尾匹配。2)、raw字符串的使用:如果要匹配一个.,*这种元字符,就需要加'\'进行转义,即要表示一个'\',正则表达式需要多加一个转义,写成'\\'linux命令,但是python字符串又需要对其转义,最终变成re.compile('\\\\'),这样就不易理解且很乱,使用raw字符串让正则表达式变得易读,即写成re.compile(r'\\'),另一个方法就是将字符放到字符集中,即[\],效果相同。语法规则:selector(response=response查询对象).xpath('//li[re:test(@class, "item-\d*")]//@href').extract()linux命令,即根据re正则匹配,test即匹配,属性名是class,匹配的正则表达式是"item-\d*",然后获取该标签的href属性。
-l,--paginate通过pr编码传递输出,使其分页
-n,--rcs 输出RCS格式差异
-N,--new-file把缺少的文件当做空白文件处理
-p,--show-c-function显示带有C函数的变化
-q,--brief 仅输出文件是否有差异,不报告详细差异
-r,--recursive当比较目录时,递归比较所有找到的子目录
-s,--report-identical-files当两个文件相同时报告
-SFILE,--starting-file=FILE 在比较目录时,从FILE开始。用于继续中断的比较
-t,--expand-tabs将输出时扩展Tab转换为空格,保护输入文件的tab对齐方式
-T,--initial-tab通过预先设置的tab使选项卡对齐(???)
-u,-UNUM,--unified[=NUM] 使用统一输出格式(输出一个整体,只有在差异的地方会输出差异点,并标注出来),输出NUM(默认3)行的上下文(上下各NUM行,不包括差异行)