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]# 

Linux基础命令---diffstat的更多相关文章

  1. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  2. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  3. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  4. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  5. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  6. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  7. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

随机推荐

  1. Html5游戏框架createJs组件--EaselJS(一)

    现在html5小游戏越来越火爆了,由于公司业务的需要,也开发过几款微信小游戏,用canvas写的没有利用什么框架,发现性能一直不怎么好,所以楼主就只能硬着头皮去学习比较火的Adobe公司出的Creat ...

  2. Swift - 判断应用是否是第一次启动(或当前版本是否第一次启动)

    1 实现原理 (1)我们会发现许多 App 在一次启动时会显示一个新手引导页(下次启动就不会再显示)   (2)其判断原理就是在 AppDelegate 里的 didFinishLaunchingWi ...

  3. logstash实战input插件syslog

    vim /etc/logstash/conf.d/syslog.conf input{ syslog{ type => "system-syslog" port => ...

  4. Git 使用篇二:搭建远程服务器

    一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发. 这里以Centos云服务器为例: 第一步 如果自己的服务器没有git ...

  5. 洛谷P2414 阿狸的打字机【AC自动机】【fail树】【dfs序】【树状数组】

    居然真的遇上了这种蔡队题.瑟瑟发抖. 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母.经阿 ...

  6. linux:正则表达式grep命令

    基本语法一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串. 一.选择:| |   竖直分隔符表示选择,例如"boy|girl"可 ...

  7. 源码解读 zsetAdd

    https://github.com/antirez/redis/blob/6a6471aad5e4f8d6cbab677b918b14cdee416296/src/t_zset.c /* Updat ...

  8. MyBatis 强大之处 多环境 多数据源 ResultMap 的设计思想是 缓存算法 跨数据库 spring boot rest api mybaits limit 传参

    总结: 1.mybaits配置工2方面: i行为配置,如数据源的实现是否利用池pool的概念(POOLED – This implementation of DataSource pools JDBC ...

  9. Xcode 9运行h d f报错

    SocialSDKXib/UMSCommentInputController.xib: error: Illegal Configuration: Compiling IB documents for ...

  10. 构建更好的客户端 JavaScript 应用

    你可能注意到了,最近的一段时间越来越多的Web应用有变复杂的趋势,重心从服务端慢慢向着客户端转移. 这是个正常的趋势么?我不知道.支持和反对者的讨论就像是在讨论复活者和圣诞节哪一个更好一样; 很难说哪 ...