【问题标题】:How to ignore comment changes and blank line changes in two files?如何忽略两个文件中的注释更改和空行更改?
【发布时间】:2014-02-12 11:10:14
【问题描述】:

我正在使用“svn diff”命令获取目录级别的更改,但此差异包括所有注释行更改和空行更改。如何忽略这些值?

例如:

差异文件:

+ import......

+ some code
+ #comment
+ blank line
+ some code

应该如下:(cmets和空行应该省略)

+ import......

+ some code
+ some code

如果我可以使用 Java 或 unix 处理第一个文件并删除这些空白行和注释行,那也很好?

【问题讨论】:

    标签: java svn unix diff


    【解决方案1】:

    svn diff -r 100:200 -x -b > file.diff

    对于空格使用-x --ignore-space-change-x --ignore-all-space。 (见svn -h diff。)

    【讨论】:

      【解决方案2】:

      假设#是你的注释字符,那么你可以使用egrep命令过滤掉你不想要的行

      svn diff <args> | egrep -v '^\+(#|$)'
      

      什么是 egrep?

      egrep 命令是 grep 二进制文件的快捷方式,但有一个例外,当 grep 以 egrep 调用时,grep 二进制文件会按原样激活其内部逻辑称为grep -E。 你会问有什么区别.. 区别在于 -E 参数允许使用扩展的正则表达式模式,它允许你使用这样的 meta-symbols 作为 +, ?或 | (管道)。它们不是我们以前在单词或文件名中使用的序数字符,而是 grep 二进制文件本身的控制命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-07
        • 2012-07-01
        • 1970-01-01
        相关资源
        最近更新 更多