学而实习之 不亦乐乎

Linux:diffstat 命令(differential status)

2022-01-01 19:15:46

一、概述

功能说明:根据 diff 的比较结果,显示统计数字。
语 法:diff [-wV][-n <文件名长度>][-p <文件名长度>]

补充说明:diffstat 读取 diff 的输出结果,然后统计各文件的插入,删除,修改等差异计量。

参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n 参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。

二、使用技巧

1.用户也可以直接使用"|"将diff指令所输出的结果直接送给diffstat指令进行统计结果的显示。
2.使用该指令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。

三、实例

将目录"dir1"和"dir2"下的同名文件"test.txt"使用diff指令进行比较。然后使用diffstat指令对结果进行统计显示,输入如下命令:

$ diff dir1 dir2 | diffstat   #进行比较结果的统计显示

注意:使用这条命令可以非常方便地实现统计显示的功能。

对于查看文件中的内容,用户可以通过指令"cat"进行查看即可,具体操作如下:

$ cat dir1/test.txt           #dir1/test的内容  

abc  
def  
ghi  
jkl  
mno  
pqr  
stu  
vws  

$ cat dir2/test.txt           #dir2/test的内容  

abc  
def  
ghi  
jkl  
mno

从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:

testfile | 2 +-             #统计信息输出显示  
1 file changed, 1 insertion(+), 1 deletion(-)


当目录中文件不一样时,会显示 |only,如在dir1中添加一个 test1.txt 文件,输出如下:

 dir1/test1.txt |only
 dir2/test.txt  |    5 +----
 2 files changed, 1 insertion(+), 4 deletions(-)