diff -ur dir1 dir2 | diffstat
这与git diff --stat
类似,但diffstat
忽略了"Only in dir1"one_answers"Only in dir2"文件,而git diff
分别将其添加到删除和插入计数中。有没有一种方法可以让diffstat做同样的事情?
更简单:
diff -urN dir1/ dir2/ |diffstat
使用GNU diff的-N
选项,例如,当比较目录时:
如果只存在一个文件,diff通常不显示其内容;它只是报告一个文件存在,而另一个不存在。您可以将diff设置为缺少的文件为空,以便它输出实际存在的文件的全部内容。(它输出为插入或删除,具体取决于丢失的文件是在第一个位置还是第二个位置。)要做到这一点,使用
--new-file
(-N
)选项。
diff -ur --exclude=".git" dir1/ dir2/ | grep -i "only in dir1" | awk '{print $3 $4}' | sed 's/:///' | xargs cat | wc -l
我将此命令的输出与问题中diffstat命令生成的删除(-)计数一起添加,以获得实际的删除计数,类似于插入(+)计数。