如何获取差异以报告新行,已更改行和已删除行的摘要

suy*_*sha 46 unix diff

我想要总结两个文件之间的区别.预期输出是新行,删除行和更改行的计数.diff很容易提供这样的输出吗?如果没有,那么有任何脚本/实用程序可用于获取摘要.

sig*_*ice 91

我想你在找diffstat.简单地输出diff到的输出,diffstat你应该得到这样的东西.

 include/net/bluetooth/l2cap.h |    6 ++++++
 net/bluetooth/l2cap.c         |   18 +++++++++---------
 2 files changed, 15 insertions(+), 9 deletions(-)
Run Code Online (Sandbox Code Playgroud)

  • 要得到打印的文件名,需要diff统一`diff -u foo1/bar.cpp foo2/bar.cpp | diffstat` 会大喊`bar.cpp | 6++++++`。如果不统一,文件名将是“未知”。 (3认同)
  • 对于我们这些安装了Homebrew的Mac用户.只需通过`brew install diffstat`安装即可. (2认同)

ste*_*ano 20

对于那些使用GitMercurial的人来说,快速查看未分阶段更改的摘要:

git diff --stat
hg diff --stat
Run Code Online (Sandbox Code Playgroud)


lot*_*har 14

如果使用diff -u,它将生成一个统一的diff,其前面带有+-.如果管道通过grep的输出(只得到了+- ),然后到厕所你得到的计数为+ ES和-分别上课.