【问题标题】:How to make diffstat count removed and newly added files to LOC count?如何删除 diffstat 计数并将新添加的文件添加到 LOC 计数?
【发布时间】:2015-08-18 15:45:58
【问题描述】:
diff -ur dir1 dir2 | diffstat

这类似于git diff --stat,但diffstat 忽略“仅在目录1”和“仅在目录2”文件,而git diff 分别将其添加到删除和插入计数中。有没有办法让 diffstat 做同样的事情?

【问题讨论】:

    标签: linux diff git-diff diffstat


    【解决方案1】:

    更简单:

    diff -urN dir1/ dir2/ |diffstat
    

    使用 GNU diff 的 -N 选项,例如,当 comparing directories:

    如果只存在一个文件,diff 通常不显示其内容;它仅报告一个文件存在,而另一个文件不存在。您可以使 diff 表现得好像丢失的文件是空的,以便它输出实际存在的文件的全部内容。 (输出为插入或删除,取决于丢失的文件是在第一个还是第二个位置。)为此,请使用--new-file (-N) 选项。

    【讨论】:

      【解决方案2】:
      diff -ur --exclude=".git" dir1/ dir2/ | grep -i "only in dir1" | awk '{print $3 $4}' | sed 's/\:/\//' | xargs cat | wc -l
      

      我将这个命令的输出与问题中 diffstat 命令吐出的删除(-)计数相加,以获得实际的删除计数,插入(+)计数也是如此。

      【讨论】:

        猜你喜欢
        • 2014-03-20
        • 1970-01-01
        • 2020-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-07
        • 1970-01-01
        • 2011-03-18
        相关资源
        最近更新 更多