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

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

  1. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 1.txt
  2. 姓名:毕小朋
  3. 年龄:保密
  4. 性别:公的
  5. 博客:blog.csdn.net/wirelessqa
  6. 微博:www.weibo.com/wirelessqa
  7. 邮箱:wirelessqa.me@gmail.com
  8. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 2.txt
  9. 姓名:毕小朋
  10. 年龄:28
  11. 性别:公的
  12. 博客:blog.csdn.net/wirelessqa
  13. 微博:www.weibo.com/wirelessqa
  14. 邮箱:wirelessqa.me@gmail.com
  15. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 3.txt
  16. 姓名:毕小朋
  17. 年龄:保密
  18. 性别:公的
  19. QQ782670627
  20. 博客:blog.csdn.net/wirelessqa
  21. 微博:www.weibo.com/wirelessqa
  22. 邮箱:wirelessqa.me@gmail.com

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

一. 正常格式的diff

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

内容改变(c,代表change)

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

小解其意:

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

< 年龄:保密 表示该行被去除

--- :分享符

> 年龄:28 : 增加了该行,“年龄:28 ”是内容

"增加"(a,代表addition)

  1. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 1.txt 3.txt
  2. 3a4
  3. > QQ782670627

"删除"(d,代表deletion)

  1. bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 3.txt 1.txt
  2. 4d3
  3. < QQ782670627

二. 上下文格式的diff

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

说明:-c表示:content

内容改变(change)

"增加"(+)

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

"删除"(-)

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

三. 合并格式的diff

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

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

内容改变

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

小解其意:

---表示变动前的文件


+++表示变动后的文件


开始行和结束行都用@@


它将两个文件的上下文,合并显示在一起,所以叫做"合并格式"。每一行最前面的标志位,空表示无变动,减号表示第一个文件删除的行,加号表示第二个文件新增的行。

"增加"(+)

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

"删除"(-)

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

【Linux常用工具】1.1 diff命令的三种格式的更多相关文章

  1. Linux 常用工具小结:(5) lftp工具使用

    Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...

  2. 调用sed命令的三种方式

    调用sed命令的三种方式 调用sed有三种方式,一种为Shell命令行方式,另外两种是将sed命令写入脚本文件,然后执行该脚本文件. 三种方式的命令格式归纳如下: 一.在Shell命令行输入命令调用s ...

  3. idea执行maven命令的三种方式

    前言: java开发的IDE工具idea默认会提供maven生命周期的图形化执行,但是如果我们需要定制化的执行命令的时候,就需要使用手动执行maven命令的方式,今天就和大家讲一下idea手动执行ma ...

  4. linux常用工具及命令

    1.windows复制文件到linux可以使用工具winscp工具 2.建立软连接命令(将/software/run.log的文件指向/usr/local/logs/中): cd /usr/local ...

  5. linux常用的查看设备的命令

    系统 # uname -a # 查看内核/操作系统/CPU信息  # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息  # ...

  6. Linux 常用工具iptables

    iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火 ...

  7. Linux 常用工具sysstat之sar

    sysstat包 iostat.sar.sa1和sa2命令都是sysstat包的一部分.它是Linux包含的性能监视工具集合: sar:收集.报告或存储信息(CPU.内存.磁盘.中断.网卡.TTY.内 ...

  8. Linux学习历程——Centos 7 diff命令

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

  9. Linux常用快捷键以及如何查看命令帮助

    1.1    Linux系统快速操作常用快捷键 快捷键名称 快捷作用 Ctrl + a 将光标移至行首 Ctrl + e 将光标移至行尾 Ctrl + u 前提光标在行尾,则清除当前行所有的内容(有空 ...

随机推荐

  1. php函数的初步使用

    通过调用函数,实现打印半金字塔.全金字塔.空心金字塔.菱形.空心菱形 调用例程 huaTuMain.php 被调用函数 huaTu.php

  2. Gvim7.4简单配置

    今天下午小折腾了一会Gvim编辑器(7.4版,目前最新).看起来高端又没有代码提示,还能锻炼锻炼记忆. 修改了下默认启动配置<修改后如下图>: 打开编辑器: 编辑->启动设定-> ...

  3. base 使网页所有超链接都以新超链接的方式打开

    需求,网页有许多超链接,但是没有加 target="_blank",现在需要所有超链接都已新页面的方式打开 在head头添加 <base target="_blan ...

  4. php 获取客户端IP地址

    /** * 获取真实IP地址 */ /* 在PHP中getenv(参数)函数是一个用于获取环境变量的函数,根据提供不同的参数可以获取不同的环境变量, getenv("REMOTE_ADDR& ...

  5. 【转】mysqldump

    原文地址:http://blog.chinaunix.net/uid-16844903-id-3411118.html 导出 导出全库备份到本地的目录 mysqldump -u$USER -p$PAS ...

  6. 随机List中数据的排列顺序

    把1000个数随机放到1000个位置. 这也就是一个简单的面试题.觉得比较有意思.就顺带写一下 举个简单的例子吧. 学校统一考试的时候  有 1000个人,然后正好有 1000个考试位置,需要随机排列 ...

  7. 运行从别处复制过来的linux可执行程序

    1, 首先ldd看看缺不缺so文件,如果不缺可忽略下面的文字,直接执行 2, 先看看缺的这些库在系统上有没有,这些库可通过安装开发包,第三方软件进行安装 3, 找到可能会包含这些库的可执行程序,ldd ...

  8. 总结Web应用中基于浏览器的安全漏洞

    ‍‍‍‍‍1.浏览器缓存 每次打开一个网站,网页的内容会缓存到用户的机器中.如果这些内容在其他网页中需要重新加载,浏览器加载的是缓存,而不是再次下载内容.如果一些Web应用商店以及显示用户敏感信息(比 ...

  9. 你的 Docker 应用是安全的吗?

    近一年来,Docker 已经逐渐成为 container 界的事实标准,成为技术人员不可或缺的技能之一,就像 Docker 宣称的那样,「Build,Ship,and Run Any App,Anyw ...

  10. Hibernate 缓存 关于注解方式

    要引入 import org.hibernate.annotations.Cache; 在类前面添加: @Cache(usage= CacheConcurrencyStrategy.NONSTRICT ...