diff -ur dir1 dir2 | diffstat
这与git diff --stat
类似,但diffstat
忽略“仅在dir1”和“仅在dir2”文件中,而git diff
则分别将其添加到删除和插入计数中。有没有办法让diffstat做同样的事情?
答案 0 :(得分:0)
diff -ur --exclude=".git" dir1/ dir2/ | grep -i "only in dir1" | awk '{print $3 $4}' | sed 's/\:/\//' | xargs cat | wc -l
我正在添加此命令的输出,并在问题中使用diffstat命令进行删除( - )计数,以获得实际的删除计数,类似于插入(+)计数。
答案 1 :(得分:0)
简单:
diff -urN dir1/ dir2/ |diffstat
使用GNU diff的-N
选项,例如comparing directories:
如果只存在一个文件,diff通常不会显示其内容;它仅报告一个文件存在但另一个文件不存在。您可以使diff表现为缺少的文件为空,以便它输出实际存在的文件的全部内容。 (它将作为插入或删除输出,具体取决于丢失的文件是在第一个位置还是第二个位置。)为此,请使用
--new-file
(-N
)选项。