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行。
-表示原文件的行,+表示新文件的行。
所以,只看-的话就是原文件,只看+的话,就是新文件了。
diff输出格式解析的更多相关文章
- (待补充)diff 算法解析
今天,学习React的时候,底层提到了 diff算法,顺藤摸瓜, 也发现了VUE也使用了diff算法. mark一下,后续补充 infoq-VUE-diff算法 react-diff算法
- 解析vue2.0的diff算法 虚拟DOM介绍
react虚拟dom:依据diff算法台 前端:更新状态.更新视图:所以前端页面的性能问题主要是由Dom操作引起的,解放Dom操作复杂性 刻不容缓 因为:Dom渲染慢,而JS解析编译相对非常非常非常快 ...
- git diff与linux diff的输出格式之unified format
前言 前面有一篇文章<一个有些意思的项目--文件夹对比工具(一)>,里面简单讲了下diff算法之--Myers算法. 既然是算法,就会有实现,比如git diff中有Myers的实现,gi ...
- 虚拟dom与diff算法 分析
好文集合: 深入浅出React(四):虚拟DOM Diff算法解析 全面理解虚拟DOM,实现虚拟DOM
- diff 比较两个文件的差异
功能:比较两个文件的差异,并把不同地方的信息显示出来.默认diff格式的信息. diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的补丁文件.也使用patch命令对 ...
- linux常用命令--diff
diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> ...
- ReactiveNative学习之Diff算法
React 源码剖析系列 - 不可思议的 react diff深入浅出React(四):虚拟DOM Diff算法解析React diff 算法总结链接引用的文章React出于性能的考虑,为了避免频繁操 ...
- diff比较两个文件 linux
功能:比较两个文件的差异,并把不同地方的信息显示出来.默认diff格式的信息. diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的补丁文件.也使用patch命令对 ...
- 虚拟DOM解析及其在框架里的应用
虚拟DOM解析及其在框架里的应用 浏览器是怎样解析HTML并且绘出整个页面的 上图为webkit引擎浏览器的处理流程,如上图大致分为4大步: 第一步,HTML解析器分析html,构建一颗DOM树: 第 ...
随机推荐
- JS:事件处理程序
在JQuery中有个toggle事件,可以绑定两个或多个函数,可以轮流相应click事件,这两天学习到原来javascript中有两个方法(也可以说是四个)同样可以实现这个功能. #box{ marg ...
- Windows OS上安装运行Apache Kafka教程
Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...
- [Android]关于filed 遍历资源文件的排序问题
Field[] svgfields = R.drawable.class.getFields(); listid = new ArrayList<Integer>(); for (Fiel ...
- centos7 最小化安装没有ifconfig及修改网卡名enoxxx为ethX
问题: 1.最小化安装centos7后发现无ifconfig命令 想通过ifconfig查看ip地址发现ifconfig命令不存在,可通过命令 #ip addr //查看ip 或者 解决: ...
- SQL模仿Split 功能
--方法0:动态SQL法 declare @s varchar(100),@sql varchar(1000) set @s='1,2,3,4,5,6,7,8,9,10' set @sql='sele ...
- Delphi中字符串补齐方法
函数功能:当Str不满Len长度时,在Str前自动填充PadStr以补足长度,例子如下: Str:原字符串 Len:补多长 PadStr:用什么补齐,比如‘0’ function PadString( ...
- FastJson和AsyncHttpCLient
Android的展示数据,除了上章所讲的本地存储外,大部分数据都来自于网络.首先介绍一下Android APP开发常见的网络操作方式.从网络层面上有底层的tcp/ip,也就是我们常见的socket套接 ...
- CentOS下设置默认JDK
最近在弄Linux,用yum源安装opnjdk-devel版本后,用命令ll /etc/alternatives/java查看,发现指向的是jre目录,而不是jdk,在此设置指向jdk目录. 1. 设 ...
- true_kb
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 微信 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
{"errcode":,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]&q ...