• 【Linux常用工具】1.1 diff命令的三种格式



    diff是用来比较两个文本文件的差异的工具,它有三种格式,下面用实例介绍一下:

    准备三个测试文件1.txt 2.txt 3.txt

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 1.txt
    姓名:毕小朋
    年龄:保密
    性别:公的
    博客:blog.csdn.net/wirelessqa
    微博:www.weibo.com/wirelessqa
    邮箱:wirelessqa.me@gmail.com
    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 2.txt
    姓名:毕小朋
    年龄:28
    性别:公的
    博客:blog.csdn.net/wirelessqa
    微博:www.weibo.com/wirelessqa
    邮箱:wirelessqa.me@gmail.com
    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 3.txt
    姓名:毕小朋
    年龄:保密
    性别:公的
    QQ:782670627
    博客:blog.csdn.net/wirelessqa
    微博:www.weibo.com/wirelessqa
    邮箱:wirelessqa.me@gmail.com
    


    说明:1.txt跟2.txt相比内容有修改,1.txt跟3.txt相比3.txt内容有增加,3.txt与1.txt相比内容有所减少

    一. 正常格式的diff

    格式:$ diff <变动前的文件> <变动后的文件>

    内容改变(c,代表change)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 1.txt 2.txt
    2c2
    < 年龄:保密
    ---
    > 年龄:28
    


    小解其意:
    2c2表示文件1第二行内容改变,变动后变为文件2的第二行,c表示内容改变

    < 年龄:保密 表示该行被去除
    --- :分享符
    > 年龄:28 : 增加了该行,“年龄:28 ”是内容

    "增加"(a,代表addition)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 1.txt 3.txt
    3a4
    > QQ:782670627

    "删除"(d,代表deletion)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 3.txt 1.txt
    4d3
    < QQ:782670627

    二. 上下文格式的diff

    格式:$ diff -c <变动前的文件> <变动后的文件>

    说明:-c表示:content

    内容改变(change)


    "增加"(+)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -c 1.txt 3.txt
    *** 1.txt     Mon Aug 12 22:54:56 2013
    --- 3.txt     Mon Aug 12 23:08:08 2013
    ***************
    *** 1,6 ****
    --- 1,7 ----
      姓名:毕小朋
      年龄:保密
      性别:公的
    + QQ:782670627
      博客:blog.csdn.net/wirelessqa
      微博:www.weibo.com/wirelessqa
      邮箱:wirelessqa.me@gmail.com

    "删除"(-)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -c 3.txt 1.txt
    *** 3.txt     Mon Aug 12 23:08:08 2013
    --- 1.txt     Mon Aug 12 22:54:56 2013
    ***************
    *** 1,7 ****
      姓名:毕小朋
      年龄:保密
      性别:公的
    - QQ:782670627
      博客:blog.csdn.net/wirelessqa
      微博:www.weibo.com/wirelessqa
      邮箱:wirelessqa.me@gmail.com
    --- 1,6 ----

    三. 合并格式的diff

    如果两个文件相似度很高,那么上下文格式的diff将显示大量重复的内容,很浪费空间,"合并格式"的diff就是将两个文件的上下文合并在一起显示


    格式:$ diff -u <变动前的文件> <变动后的文件>

    内容改变

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -u 1.txt 2.txt
    --- 1.txt     2013-08-12 22:54:56.000000000 +0800
    +++ 2.txt     2013-08-12 22:56:19.000000000 +0800
    @@ -1,5 +1,5 @@
     姓名:毕小朋
    -年龄:保密
    +年龄:28
     性别:公的
     博客:blog.csdn.net/wirelessqa
     微博:www.weibo.com/wirelessqa
    

    小解其意:
    ---表示变动前的文件
    +++表示变动后的文件
    开始行和结束行都用@@
    它将两个文件的上下文,合并显示在一起,所以叫做"合并格式"。每一行最前面的标志位,空表示无变动,减号表示第一个文件删除的行,加号表示第二个文件新增的行。

    "增加"(+)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -u 1.txt 3.txt
    --- 1.txt     2013-08-12 22:54:56.000000000 +0800
    +++ 3.txt     2013-08-12 23:08:08.000000000 +0800
    @@ -1,6 +1,7 @@
     姓名:毕小朋
     年龄:保密
     性别:公的
    +QQ:782670627
     博客:blog.csdn.net/wirelessqa
     微博:www.weibo.com/wirelessqa
     邮箱:wirelessqa.me@gmail.com

    "删除"(-)

    bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -u 3.txt 1.txt
    --- 3.txt     2013-08-12 23:08:08.000000000 +0800
    +++ 1.txt     2013-08-12 22:54:56.000000000 +0800
    @@ -1,7 +1,6 @@
     姓名:毕小朋
     年龄:保密
     性别:公的
    -QQ:782670627
     博客:blog.csdn.net/wirelessqa
     微博:www.weibo.com/wirelessqa
     邮箱:wirelessqa.me@gmail.com
    



  • 相关阅读:
    Java判断一个实体类对象实例的所有成员变量是否为空
    正则表达式 整数
    将定时任务cron 解析成中文
    如何使用html定义一个红色小圆点
    Oracle获取当前日期前一个月的全部日期
    京东系统架构师如何让笨重的架构变得灵巧
    POI使用详解
    Java Excel 列号数字与字母互相转换
    使用exe4j将java项目打成exe执行程序
    Address already in use: JVM_Bind错误的解决
  • 原文地址:https://www.cnblogs.com/pangblog/p/3257991.html
Copyright © 2020-2023  润新知