2014-02-11 74 views
3

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

例如:

差异文件:

+ import...... 

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

这应该是如下:(注释和空行应ommitted)

+ import...... 

+ some code 
+ some code 

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

回答

1

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

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

0

。假定该#你对此有何评论人物,那么你可以使用egrep命令过滤掉的线条,你不想

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

什么是egrep的多少?

egrep的命令是用于grep的二进制快捷方式,但有一个例外,当grep的被调用作为egrep grep的二进制激活,因为这将被称为grep -E其内部逻辑。 你会问什么区别..和不同之处在于-E参数可以使用扩展的正则表达式模式,它将允许您使用这样的元符号 as +,?或| (管)。它们不像我们曾经用过的单词或文件名那样是序数字符,而是grep二进制本身的控制命令。