zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    策略梯度训练cartpole小游戏
    关于不执行整个大项目而是执行其中一部分独立文件夹的时候的python运行方法
    和textrank4ZH代码一模一样的算法详细解读
    K8s常用命令
    python标准库
    chrome通过devtools来查看Devtools Extension与浏览器内核实际通信的数据情况
    修改文件MD5值
    使用charles过滤网络请求
    git中working tree, index, commit
    Maven中settings.xml的配置项说明
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144940.html
Copyright © 2011-2022 走看看