diff命令

原创
2020/04/08 17:53
阅读数 506

接手别人的工作,想把一些操作集成到ansible管理,但是因为之前同事没留下任何文档,只能自己摸着石头过河。编写playbook要清楚某些配置文件做了哪些改动,使用diff命令,让类似文件比较的工作更加高效。

参数说明

参 数 功 能
-<行数> 指定要显示多少行的文本,该参数必须与参数-c或-u一起使用
-a 将所有的文件均作为文本文件进行处理
-b 不检查文件中的空格字符
-B 不检查文件的空白行
-c 显示全部的文件内容,并标识出其不同之处
-C<行数> 与参数-c、-<行数>含义相同
-d 使用不同的演算法,以较小的单位进行比较
-D<巨集名称> 此参数的输出格式可以用于前置处理器巨集
-e 此参数的输出格式可以用于ed指令的script文件
-f 输出的格式类似于ed指令的script文件,但按照原来文件的顺序显示不同处
-H 对大的文件进行比较时,可以加快其比较速度
-l<字符或字符串> 如果两个文件在某几行有不同,并且这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异
-i 不检查文件数据的大小写不同
-n或-rcs 将比较结果以RCS的格式进行显示
-N 在比较目录时,如果文件1仅仅出现在某个目录中,则默认显示“only in目录名”。若比较文件1时,使用了该参数,则diff指令将文件1与一个空白文件进行比较
-p 如果比较的文件为C语言代码文件,则将显示差异所在的函数名称
-P 与参数-N功能相似。但只有当目录2中包含了目录1所没有的文件时,才会将这个文件与空白的文件进行比较
-q 仅仅显示有无差异,并不显示详细的信息
-r 比较子目录中的文件
-s 如果没有发现任何差异,将仍然显示相关的信息
-S<文件> 在比较目录时,将从指定的文件开始比较
-t 在输出信息时,会将tab字符展开
-T 在每行前面都加上tab字符进行对齐
-u或-U<列数> 以合并的方式显示文件内容的不同
-v 显示版本信息
-w 忽略全部的空格字符
-W<宽度> 在使用参数“-y”时,指定栏宽
-x<文件名或目录名> 不比较选项中所指定的文件或目录
-X<文件> 可以将文件或目录类型保存为文本文件
-y 以并列的方式显示文件的异同
--help 显示帮助信息
--left-column 在使用参数“-y”时,如果两个文件的某一行内容相同,则只在左侧的栏位中显示该行的内容
-- suppress-common-lines 在使用参数“-y”时,只显示其不同之处

示例

  • 比较某两个目录下文件差异,只输出差异内容,分栏打印

    $ diff -ry --suppress-common-lines /dir1/ /dir2/
    
  • 比较两个文件差异,只输出差异内容,分栏打印

    $ diff -y --suppress-common-lines file1 file2
    
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部