Linux基础命令---diffstat
这个程序读取diff的输出,并显示每个文件的插入、删除和修改的直方图。Diffstat是一个用于检查大型复杂修补程序文件的程序。它从包含diff输出的一个或多个输入文件中读取,生成针对引用的每个文件更改的总行的直方图。如果输入文件名以.bz 2、.gz、.lzma、.z或.z结尾,Diffstat将通过管道从相应的程序读取未压缩数据。它还可以根据标准输入的管道文件推断压缩类型。
Diffstat识别来自diff的最流行的输出类型:
unified,修补程序首选。
context,最好的可读性,但不太紧凑。
default,不是很好,但很容易产生。
Diffstat检测由diff输出的行,以判断比较了哪些文件,然后在第一列中计数表示更改类型(插入、删除或修改)的标记。这些在直方图中显示为“、”-“和”!“字符。如果命令行上没有指定文件名,Diffstat将读取标准输入中的差异。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
diffstat [options] [file-specifications]
2、选项列表
-b
忽略diff中的“二进制文件XXX和YYY不同”匹配的行
-c
在每一行输出前加上“#”,使其成为shell脚本的注释行。
-D destination
指定一个目录,其中包含可作为应用差异的结果而引用的文件。Diffstat将计算相应文件中的行数(在通过-p选项调整名称之后),以获得每个文件中的总行数。
-e file
将标准错误重定向到文件
-f format
指定直方图的格式:
0,为了简洁,它只显示值和一个直方图代码insert (+),delete (-)或modify (!)。
1,正常格式。
2,用点填充直方图。
4,使用直方图打印每个值。
任何非零值都会给出直方图。点和个别值可以结合在一起,例如-f6给出两者。
-h
显示帮助信息并且退出
-k
禁止合并报表中的文件名
-l
只列出文件名。不生成直方图。
-m
从修补程序文件的每个“块”中合并插入/删除计数,以接近修改行的计数
-n number
指定用于文件名的最小宽度。如果不指定这一点,Diffstat在去掉常见前缀后使用最长文件名的长度。
-N number
指定用于文件名的最大宽度。超过此限制的名称在左侧被截断。如果您没有指定此选项,下面将检查-n选项。
-o file
将标准输出重定向到文件
-p number
重写删除公共路径名的逻辑,模拟修补程序“-p”选项。
-q
抑制空差异的“0文件更改”消息
-r code
提供直方图中显示的数据的可选舍入,而不是通过错误调整截断数据:
0,是默认的。不执行舍入操作,但累积错误将添加到下列中。
1,舍入数据。
2,对数据进行舍入并调整直方图,以确保在有任何差异的情况下显示某些内容,即使这些差异通常被四舍五入为零。
-S source
这类似于-D选项,但指定了一个可以找到原始文件(在应用差异之前)的位置。
-t
重写直方图,生成逗号分隔值的输出。
-u
禁止对报表中的文件名进行排序。
-v
显示进度,例如,如果输出重定向到文件,则将进度消息写入标准错误
-V
显示版本号,并且退出
-w number
指定直方图的最大宽度。直方图将永远不会小于10列,以防文件名过大。
3、环境变量
Diffstat运行在可移植的UNIX环境中。您可以通过设置与输入文件名称相对应的环境变量来覆盖用于解压缩输入文件的程序的编译路径。然而,Diffstat假设生成的程序使用相同的命令行选项,例如“-c”来解压缩到标准输出。
DIFFSTAT_BZCAT_PATH
DIFFSTAT_BZIP2_PATH
DIFFSTAT_COMPRESS_PATH
DIFFSTAT_GZIP_PATH
DIFFSTAT_LZCAT_PATH
DIFFSTAT_PCAT_PATH
DIFFSTAT_UNCOMPRESS_PATH
DIFFSTAT_ZCAT_PATH
4、实例
统计差异信息
[root@localhost wj]# diff 1.c 2.c
1c1
< asd
---
> add
3,4c3,4
< dfg
< ass
---
> dsgf
> sss
[root@localhost wj]# diff 1.c 2.c |diffstat -f 2
unknown | 6 +++---..........................................................
1 file changed, 3 insertions(+), 3 deletions(-)
[root@localhost wj]# diff 1.c 2.c |diffstat -f 1
unknown | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
You have new mail in /var/spool/mail/root
[root@localhost wj]# diff 1.c 2.c |diffstat -f 0
unknown | 6 3 + 3 - 0 !
1 file changed, 3 insertions(+), 3 deletions(-)
[root@localhost wj]#
相关文章:

两个asp.net发送邮件类
代码 //第一个usingSystem;usingSystem.Text;usingSystem.Net.Mail;namespaceCars.Tootls.Tools{ publicclassEmail { privateEmail() { } ///<summary>///发送邮件 ///</summary>///<param name"Su…

symfony2是什么?
首先,symfony2是一个松散的,独立的,有组织严密的php组件的集合,它可以为你解决一些web开发中一般性的问题。 其次,基于这些组件,php又可以作为一个独立web框架使用。 转载于:https://www.cnblogs.com/ljcph…

PAT(甲级)2019年春季考试 7-2 Anniversary
注意点 1. 记录是不是校友,有两种方法 (1)map<string,int> mp mo[guest] 1 判断mp[comer] (2)set<string> st st.insert(guest) st.count(comer) 2. 由于只需要输出年龄最大的&…
根据总用量计算每种包装规格的购买量和总价
最近有这么一个需求,就是给出客户需要的总量,然后根据数据库记录的包装规格,计算出客户需要购买的包装规格种类和个数,而且要保证客户的花费最小。 示例图片效果 示例代码实现如下。欢迎大家一起讨论。 代码 using System;using S…

5个在线调试代码的网站
对于编程开发的人来说,有个快速测试代码的地方是非常方便重要的,这里,我们收集了5个很好用的在线调试网站。 1.codepad 是一款简单的在线 IDE 编辑器服务,你只需要把代码粘贴进去就可以编译运行了,连工程也不需要新建&…

Windows 日志高级筛选实践
背景经常需要查看日志,不仅是用来排错,有些时候我还需要监控系统来抓取特定日志来帮助减少我的工作负担,以及时监控到异常出现,并作出通知及响应,那么从大量日志中快速并精确筛选出想要的日志,并且精确提取…

PAT(甲级)2018年秋季考试 7-1 Werewolf - Simple Version
1. 我设置了一个结构体变量存储每个人的指控信息 struct IF{int type 0;int no; }; 这里我发现了一件事,如果结构体只有有参数的构造函数,那么直接声明该结构体类型的数组是不行的。但是好处是数组知道下标可以直接赋值。 也就是这样组合最好&#x…

appium 启动失败解决方案
本机下载了:AppiumForWindows,启动Appium.exe 的时候,立即提示:应用程序已停止运行!! 本机环境: WIN 7 64 位,后来查了资料才知道Appium 要求安装.net framework 4.5,本机…

Django基础-数据分页
2019独角兽企业重金招聘Python工程师标准>>> pager.py # -*- coding:utf8 -*- """ 引用说明: 数据总个数:total_count 数据总页数:num_pages 每页显示的行数:perPageItemNum【默认显示10行】 最多显示页…

存货的计划属性设置(ATO模型和PTO模型)
对于原来应用ERP1时已经存在的存货,如果在存货属性中没有进行过设置或者设置不完善,需要进行补充设置。这样的补充设置包括: 自制:具有该属性的存货可由企业生产自制。如工业企业生产的产成品、半成品等存货。具有该属性的存货可用…

(C++)判断一个序列是non-increasing/non-decreasing还是两者都不的两个方法
思路:根据前两个值预设类型,再遍历后面的pair,看是否推翻预设 int judgeType(vector<int> vi){//-1 递减 0 啥也不是 1 递增 if(vi.size()1)return 0;//根据前两个元素的大小设置初始类型int type;if(vi[1]>vi[0])type 1;else …

java 下载文件功能代码例子
public static void down(HttpServletRequest request, HttpServletResponse response) throws Exception { String name"aaa.*";//文件名 String uploadPath UploadFileHelper.getRepositoryPath()"//";//文件来源 String filePath…

不要小看字符串
字符串非常非常常见又重要,而且还有那么多名堂在里面 字符串: 在标准C中,是没有字符串变量的,但是有字符数组。而且标准C带有的标准库函数:string.h中包含了大量的字符串操作函数,当然如果必要的话,你也可以…

零基础学习Python需要注意的几个点,Python培训机构排名
俗话说的好万事开头难,不管你做任何事情,开头的确很较难的,学Python编程也是如此,因此刚开始学Python编程的同学们,就要多借鉴过来人的经验,少走弯路,本文小编就为大家分享几个Python编程小白初…

PAT(甲级)2018年冬季考试 7-4 Heap Paths(非递归与递归解法)
非递归解法 1. 前置知识:完全二叉树的属性 1.1 从1开始存储,子节点的下标除以二得到的是父节点的下标 1.2 数组的存放顺序刚好是层序遍历顺序 1.3 从1开始存储,节点的下标i和结点总数n如果满足 i*2>n说明该结点是叶子结点 2. 思路&am…

Request Connection: Remote Server @ 192.229.145.200:80
录制Loadrunner脚本时,提示:Request Connection: Remote Server 192.229.145.200:80 NOT INTERCEPTED!(REASON: User requested to IGNORE connection);解决方法:1. 打开IE里的Internet选项,单击连接选项卡。单击最…

抽象工厂与工厂模式例子
NativeFactory。java package com;//定义 人有杀日本人 和 杀美国人两个方法interface NativePerson{ public void killAmeria(); public void killJapan();}//中国人实现了人的接口 class NativeChinese implements NativePerson{ //中国人杀美国人 public void killAmeria() …

《疯狂Java讲义》学习笔记(十)异常处理
2019独角兽企业重金招聘Python工程师标准>>> 0、Java的异常体系 1、异常概述 异常机制已经成为判断一门编程语言是否成熟的标准,目前主流的编程语言都提供了成熟的异常机制,增加了异常处理机制后的程序有更好的容错性,更加健壮 Ja…

PAT(甲级)2018年冬季考试 7-1 Google Recruitment
1. 本题是 substrsscanf的绝佳实践。 2. 判断素数使用i*i<n与i<(int)sqrt(0.1*x)的区别是前者可能再n接近10的9次方时溢出,但本题不会。 3. 尽管把字符串转变成了整数,但输出时仍旧输出字符串,如果选择打印整数,会遇到%0K…

MySQL 的“root”用户修改密码
MySQL 的“root”用户默认状态是没有密码的,所以在 PHP 中您可以使用 mysql_connect("localhost","root","") 来连接 MySQL 服务器;如果您想为 MySQL 中的“root”用户设置密码,请在控制台中使用“mysqladmin”…

游戏AI之初步介绍(0)
目录 游戏AI是什么?游戏AI和理论AI智能的假象(更新)游戏AI和机器学习介绍一些游戏AI4X游戏AI《求生之路》系列角色扮演/沙盒游戏中的NPC游戏AI 需要学些什么?自治智能体群体智能感知状态机(重要)行为树&…

Google Adsense实用防踢技巧总结
我们都知道,对个人草根站长来说,Google AdSense是网站收入的主要来源之一,我在这里介绍一些常用的技巧。 希望通过这些技巧能够增加大家的Google AdSense收入,并防止自己的帐号被删除。大家喜欢的话就顶下吧! 广告的位…

PAT(甲级)2018年冬季考试 7-3 Vertex Coloring
1. 起先我的思路是,对于每一种方案,把相同颜色的下标放到一个集合,对于每一个集合判断里面的元素互相之间是否有着邻接关系。有一个用例超时,20/25。 2. 转变思路,对于每一种方案,遍历邻接关系,…
蚂蚁金服×西安银行 | 西安银行手机银行App的智能升级之路
小蚂蚁说:当前,数字化信号已经逐渐深入到社会的每个角落,影响着用户的心智和行为,来到数字化时代门口的银行,需要注意到数字化信号。西安银行通过引入蚂蚁金服移动开发平台mPaaS,对手机银行进行架构升级&am…

(四十七)Quartz2D引擎初步
Quartz2D是跨平台的,同时支持iOS与Mac。 支持圆型裁剪,可以实现圆形头像等功能,也支持手势解锁、折线图等的制作。 对于复杂的UI界面,还可以通过Quartz2D将控件内部的结构画出来,可用于自定义控件。 实际上iOS大部分控…

PAT(甲级)2018年冬季考试 7-2 Decode Registration Card of PAT
目录 体会 代码(非满分) 改进 AC代码 体会 这题主要是考察对STL中string,map,vector的应用以及自定义sort()应用。 类型1和2的处理很容易。 类型3要求对于指定date,按照每个考场进行分类,记录不同考场的人数,按照人数非升序ÿ…

DOS、Mac 和 Unix 文件格式+ UltraEdit使用
文件格式 区分DOS、Mac 和 Unix分别对应三种系统从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种文件模式 区分ASCII模式和Binary模式 通常由系统决定,大多数Linux/UNIX系统只有两种模式:文本模式和二进制模式。文本传输器使用…

灰度图像--图像分割 Scharr算子
学习DIP第46天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro 更多图像处理机器学习…

FileUpload生成图片水印,文字水印(转载)
/** <summary>/// 生成缩略图/// </summary>/// <param name"originalImagePath">源图路径(物理路径)</param>/// <param name"thumbnailPath">缩略图路径(物理路径)</para…

1151 LCA in a Binary Tree (含求LCA的通法)
目录 解法一思路 结果 解法一改进 解法一改进结果 解法二思路 解法一代码 解法一改进代码 解法二代码(AC) 解法一思路 1. 根据先序和中序建树 2. 对树进行深度优先遍历,找到每一个结点的父节点(注意:由于值的范围是int,直接用可…