2013-12-19 55 views
0

我有一個關於POSIX正則表達式的問題。我使用SVN,它讓我很煩了,當我打電話svn st剛剛看到的外部潮水般的有趣的信息淹沒:正則表達式POSIX和不包含字符

$ svn st 
X  Application/something/somewhere 
X  Application/something/other_place 
    X Application/something/OTHERPALCE 
    X Application/something/yetANOTHERplace 
X  Application/something/SOMEWHERE 
... 

所以我設計了一個正則表達式來過濾這個爛攤子,寫svn st | grep "^[^X]{5}",但這種過濾器也其他有用的信息,但svn st | grep "^[^X]...[^X]"例如正常工作。爲什麼?

+0

你可以使用'awk {'print $ 3'}' –

+0

要清楚:這些是你想跳過的行,對嗎? – fedorqui

回答

1

你的grep線有兩個問題:

  • 爲 '{M,N}',你需要grep -Egrep '^[^X]\{m\}
  • 應該^[^X]{4},不{5}。因爲第五個字符是X,而您的grep "^[^X]...[^X]"不應該「正常工作」。或者你有不同的例子。這裏它什麼都不輸出。
+0

它的工作。只有在第2點你誤會了我,因爲上面的所有行都應該被刪除掉 - 那些在右邊也帶有「X」的行。無論如何非常感謝你。 :) – Sventimir

+0

@Sventimir哦,我想我誤解了你的要求....我以爲你想在輸出兩行....無論如何,你需要逃脫或'-E' – Kent

+0

我假設我寫了它ambigiously。對不起。 – Sventimir

相關問題