Linux命令:diff

怼烎@ 2022-01-12 17:47 324阅读 0赞

diff

1.作用
diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。

2.格式

  1. diff [options] 源文件 目标文件

3.[options]主要参数

  • -<行数>  指定要显示多少行的文本。此参数必须与-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参数时,仅显示不同之处。

4.应用举例

(1)比较两个文件

  1. [root@localhost test3]# diff log2014.log log2013.log
  2. 3c3
  3. < 2014-03
  4. ---
  5. > 2013-03
  6. 8c8
  7. < 2013-07
  8. ---
  9. > 2013-08
  10. 11,12d10
  11. < 2013-11
  12. < 2013-12

上面的”3c3”和”8c8”表示log2014.log和log20143log文件在3行和第8行内容有所不同;”11,12d10”表示第一个文件比第二个文件多了第11和12行。

(2)并排格式输出

  1. [root@localhost test3]# diff log2014.log log2013.log -y -W 50
  2. 2013-01 2013-01
  3. 2013-02 2013-02
  4. 2014-03 | 2013-03
  5. 2013-04 2013-04
  6. 2013-05 2013-05
  7. 2013-06 2013-06
  8. 2013-07 2013-07
  9. 2013-07 | 2013-08
  10. 2013-09 2013-09
  11. 2013-10 2013-10
  12. 2013-11 <
  13. 2013-12 <
  14. [root@localhost test3]# diff log2013.log log2014.log -y -W 50
  15. 2013-01 2013-01
  16. 2013-02 2013-02
  17. 2013-03 | 2014-03
  18. 2013-04 2013-04
  19. 2013-05 2013-05
  20. 2013-06 2013-06
  21. 2013-07 2013-07
  22. 2013-08 | 2013-07
  23. 2013-09 2013-09
  24. 2013-10 2013-10
  25. > 2013-11
  26. > 2013-12

说明:

  • “|”表示前后2个文件内容有不同
  • “<”表示后面文件比前面文件少了1行内容
  • “>”表示后面文件比前面文件多了1行内容

发表评论

表情:
评论列表 (有 0 条评论,324人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux diff 命令

    场景:告诉对方我修改了什么,或者让对方直接打个补丁就能将你修改的直接合并上去。 -------------------- 测试:编写两个 txt 文件,将 txt2 修改第

    相关 Linux diff命令

    Linux diff命令用于比较文件的差异。 diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

    相关 linux命令8--diff

    diff(different)命令 1.命令说明:       所有用户使用,diff以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff

    相关 每天回顾linux命令diff

    diff命令 diff命令用来比较给定两个文件的不同。以逐行的方式,比较文本的异同处。如果该命令指定进行目录比较,则会比较目录中具有相同文件名的文件,而不会对其子目录文件进

    相关 linux diff命令详解

    [diff][]程序是linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件(本文中的a.c、b.c可以理解为两个版本的同一个文件,b.c是在a.c的基础

    相关 Linux命令diff

    diff 1.作用 diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。 2.格式 diff [options] 源文件 目标文

    相关 Linux diff命令

    Linux diff命令用于比较文件的差异。 diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。