1、命令简介
diffstat:根据diff的比较结果,显示统计数字。
2、命令用法
diffstat [options] [file-specifications]
3、命令描述
diffstat命令用于读取diff的输出结果,然后统计各文件的插入,删除,修改等差异数据 。
4、命令选项
选项 | 描述 |
-b | 忽略diff中的“二进制文件XXX和YYY不同”匹配的行 |
-c | 在每一行输出前加上“#”, 使其成为shell脚本的注释行。 |
-D destination | 指定一个目录, 其中包含可作为应用差异的结果而引用的文件。 Diffstat将计算相应文件中的行数 (在通过-p选项调整名称之后), 以获得每个文件中的总行数。 |
-e file | 将标准错误重定向到文件 |
-f format | 指定直方图的格式:
它只显示值和一个直方图代码insert (+), delete (-)或modify (!)。
任何非零值都会给出直方图。 点和个别值可以结合在一起, 例如-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列, 以防文件名过大。 |
5、使用示例
1)进行比较结果的统计显示
diff file1 file2 | diffstat
2)每一行输出前加上“#”
diff urls.txt 1.txt | diffstat -c
# unknown | 2 +-
# 1 file changed, 1 insertion(+), 1 deletion(-)
3)指定显示的格式
diff urls.txt 1.txt | diffstat -f 2
unknown | 2 +-....................................................................................
1 file changed, 1 insertion(+), 1 deletion(-)