• diff输出格式解析


    1 命令格式

    $diff <变动之前的文件> <变动之后的文件>

    2 diff文件的三种格式

    normal diff

    context diff

    unified diff

    3 示例

    变动之前的文件:

    b

    bc

    b

    b

    b

    每行一个b,共5行。

    变动之后的文件:

    b

    bcd

    b

    b

    b

    共5行,第二行一个d,其它行都是b。

    4 正常格式的diff

    这个diff输出的只有difference本身,不包括difference所在的代码本身。

    diff f1.txt f2.txt

    输出如下:

    2c2

    < bc

    ------

    > bcd

    第一行说明变动的位置:前面的2是前面文件中的位置,后面一个2是后面文件中的位置,表示行号。

    c表示change,即内容改变,如果是a的话,表示该行是新增加的,如果是d的话,表示该行被删除了。

    小于号“<”表示删除该行,大于号">"表示增加该行。小于号和大于号后面的内容是该行的内容。

    5 context diff

    diff -c f1.txt f2.txt

    输出如下:

    *** f1.txt    2016-12-25 23:53:02.619930781 -0500

    --- f2.txt      2016-12-25 23:52:54.131930652 -0500

    ***************************

    *** 1,5 ***

    b

    !bc

    b

    b

    b

    ---1,5---

    b

    !bcd

    b

    b

    b

    前面两行是两个文件的基本信息,即文件名和时间,后面是时区。并且,*表示是旧的文件,-表示的是新的文件。

    ***1,5***表示1到5行的所有内容。对于---1,5---同样。

    !表示本行的内容有改变。同样,a表示增加一行,d表示减少一行。

    可见,对于context格式的输出而言,f1和f2文件的上下文是分别显示的,

    因此有很多重复的内容,因此有了unified格式,也就是说,f1和f2公用同

    一个上下文。

    6 unified diff

    $ diff -u f1.txt f2.txt

    输出如下:

    --- f1.txt        2016-12-25 23:53:02.619930781 -0500

    +++ f2.txt      2016-12-25 23:52:54.131930652 -0500

    @@ -1,5 +1,5 @@

    b

    -bc

    +bcd

    b

    b

    b

    -表示f1.txt文件,+表示f2.txt文件。

    1,5表示第1行到第5行。

    1,5表示第1行到第5行。

    -表示原文件的行,+表示新文件的行。

    所以,只看-的话就是原文件,只看+的话,就是新文件了。

  • 相关阅读:
    Oracle中快速查找锁与锁等待
    Oracle查看、修改连接数
    内置数据类型
    代码片段一
    设计模式学习四:依赖倒置原则
    队列
    设计模式学习六:代理模式
    linux 自学系列:一直kill掉多个进程
    设计模式学习五:装饰器模式
    通过__metaclass__为类动态增加方法实例
  • 原文地址:https://www.cnblogs.com/hustdc/p/6221966.html
Copyright © 2020-2023  润新知