【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
【Linux常用工具】1.1 diff命令的三种格式的更多相关文章
- Linux 常用工具小结:(5) lftp工具使用
Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...
- 调用sed命令的三种方式
调用sed命令的三种方式 调用sed有三种方式,一种为Shell命令行方式,另外两种是将sed命令写入脚本文件,然后执行该脚本文件. 三种方式的命令格式归纳如下: 一.在Shell命令行输入命令调用s ...
- idea执行maven命令的三种方式
前言: java开发的IDE工具idea默认会提供maven生命周期的图形化执行,但是如果我们需要定制化的执行命令的时候,就需要使用手动执行maven命令的方式,今天就和大家讲一下idea手动执行ma ...
- linux常用工具及命令
1.windows复制文件到linux可以使用工具winscp工具 2.建立软连接命令(将/software/run.log的文件指向/usr/local/logs/中): cd /usr/local ...
- linux常用的查看设备的命令
系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ...
- Linux 常用工具iptables
iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火 ...
- Linux 常用工具sysstat之sar
sysstat包 iostat.sar.sa1和sa2命令都是sysstat包的一部分.它是Linux包含的性能监视工具集合: sar:收集.报告或存储信息(CPU.内存.磁盘.中断.网卡.TTY.内 ...
- Linux学习历程——Centos 7 diff命令
一.命令介绍 diff命令用于比较文本差异. diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录. ------------- ...
- Linux常用快捷键以及如何查看命令帮助
1.1 Linux系统快速操作常用快捷键 快捷键名称 快捷作用 Ctrl + a 将光标移至行首 Ctrl + e 将光标移至行尾 Ctrl + u 前提光标在行尾,则清除当前行所有的内容(有空 ...
随机推荐
- JavaScript Iframe富文本编辑器中的光标定位
最近在项目中碰到一个比较棘手的问题: 在iframe富文本编辑器中,有个工具栏,这个工具栏在iframe标签之外,工具栏上有一个按钮,点击该按钮向iframe正在编辑中的光标处插入一个图片,图片会插入 ...
- oracle sqlldr控制文件模板
Sqlldr userid=lgone/tiger control=a.ctl LOAD DATA INFILE 't.dat' // 要导入的文件 // INFILE 'tt.date' // 导入 ...
- 正确安装 django-socketio
直接使用 pip 安装,连 example project 都运行不了... 要正常使用,关键是要使用正确版本的依赖包 Django (1.5.5) django-socketio (0.3.2) g ...
- 2016多校联合训练contest4 1012Bubble Sort
Bubble Sort Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tota ...
- 自定义UICollectionViewController之后 如何设置UICollectionView的布局方式--备用
我们很多时候使用UICollectionView 可能都是直接创建 UICollectionView 通过初始化的时候 传入一个布局对象的方式来使用UICollectionView 比如我们之前 ...
- Spring 中设置依赖注入
package com.ysq.vo; public class User { private int uid; private String uname; private String pwd; p ...
- YARN应用程序开发流程(类似于MapReduce On Yarn)本内容版权归(小象学院所有)
MapReduce On Yarn和MapReduce程序区别 MapReduce On Yarn(由专业人员开发)1 为MapReduce作业运行在YARN上提供一个通用的运行时环境2 需要与Yar ...
- 详解 Android 的 Activity 组件
Activity 的生命周期 和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理.与 MIDlet 不同的是安装在 android 中的所有的 ...
- 【MongoDB】应用场景
24 Use Cases24.1 适合场景 Archiving and event logging 归档和日志记录 Document and Content Management Systems ...
- Android 使用HTTP(get和post)方式登陆服务器
package com.wuyou.submittoserver; import android.os.Bundle; import android.support.v7.app.ActionBarA ...