2014-02-11 97 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二進制本身的控制命令。