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

【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. node初步一:HTTP请求

    一. 创建pathtest.js文件 var http= require('http' ); var url= require('url' ); function start (){ function ...

  2. 求算符文法的FIRSTVT集的算法

    原理 数据结构 G = {'key':[v1,v2,v3],'key':[v1,v2,v3]}; VN = []; Vt = []; FirstVT = {'key':[v1,v2,v3],'key' ...

  3. java答疑

    问 什么是 Java 的字节码? 答 它是程序的一种低级表示,可以运行于 Java 的虚拟机.将程序抽象为字节码可以保证 Java 程序员的 代码能够运行在各种设备之上. 问 Java 允许整型溢出并 ...

  4. seajs的spm使用

    压缩JS文件 只需要执行这个命令即可 spm build xxx.js 这时候你将得到一个压缩过的__build/xxx.js文件 合并JS文件 如果希望将JS文件中require的其他模块都合并到这 ...

  5. BZOJ 4009 接水果

    Description 风见幽香非常喜欢玩一个叫做osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版 ...

  6. MVC自学系列之四(MVC模型-Models)

    ASP.NET MVC 提供了一系列工具和特性去使用仅仅定义的对象模型.你可以坐下来好好思考你将要解决的问题,并且写好C#类,当你准备好时就可以使用MVC提供的工具去为每一个实体构建标准的index. ...

  7. 减少 WAF 漏报的 8 种方法 !

    近十年来,WAF 已经逐渐发展成熟,被软件行业接受并成为无数企业保护应用的不二选择.很多大型企业甚至相继亲自设计或通过并购涉足其中,在这个硕大的市场里逐鹿竞争,同时也推动了应用层防火墙的技术演进. 与 ...

  8. 全球顶级专家为你解读:什么是真正的 DevOps?

    [编者按]本文是 Skytap 内容主编 Noel Wurst 对 DevOps Enterprise Summit (DOES)的不完全综述,内容包括了 Noel 和一些与会嘉宾的思考,旨在勾画 D ...

  9. poj1150

    这道题告诉我们递推一定要慢慢细细的推Pmn=n!/m!,我们可以先考虑n!的最后一位是什么首先最后一位非0位我们首先想到把0都干掉也就是先把2和5提出来,这两个其实是同样的方法对于N!中有多少个因数2 ...

  10. HDU-2188 悼念512汶川大地震遇难同胞——选拔志愿者

    http://acm.hdu.edu.cn/showproblem.php?pid=2188 巴什博奕(Bash Game)的转换:换一种说法而已 悼念512汶川大地震遇难同胞——选拔志愿者 Time ...