2013-05-09 24 views
0

我想一個逗號後立即到grep文件與「荷蘭國際集團」結尾的字線後,立即形式結尾的詞:grep命令在「荷蘭國際集團」逗號

... we gave the dog a bone, showing great generosity ... 
... this man, having no home ... 

但不是:

... this is a great place, we are having a good time ... 

我想找到實例,其中「ING」字是一個逗號後的第一個字。看起來這應該是非常可行的grep,但我還沒有想出如何,或找到一個類似的例子。

我已經試過

grep -e ", .*ing" 

其中多個單詞逗號後的匹配。像

grep -i -e ", [a-z]{1,}ing" 
grep -i -e ", [a-z][a-z]+ing" 

不要做我期望的 - 他們不像我的前兩個例子那樣的短語。任何幫助(或指向更好的工具)將不勝感激。

+1

使用'grep -E'或'egrep',你應該沒問題。 – user123444555621 2013-05-09 22:53:21

回答

5

嘗試,\s*\S+ing

匹配你的前兩個詞組,在你的第三句話不匹配。

\s手段「任何空白」,*表示0或更多的是,\S手段「任何非空白」(大寫字母是常規用於反轉字符正則表達式集 - 適用於\b\s\w\d),+意思是'一個或多個',然後我們匹配ing

+0

謝謝。我沒有在'man grep'中找到這些正則表達式的標記,但現在我知道該找什麼了! – andyras 2013-05-10 02:48:37

+0

@andryas我使用http://www.regular-expressions.info/reference.html作爲我的正則表達式參考 – Patashu 2013-05-10 02:50:14

+0

謝謝!這是一個有用的參考。 – andyras 2013-05-10 13:40:21

2

您可以使用\b令牌來匹配單詞邊界(請參閱this page)。

類似下面應該工作:

grep -e ".*, \b\w*ing\b" 

編輯:除了現在我意識到,\b是不必要的,.*,\s*\w*ing會工作,爲Patashu指出。我的正則表達式生鏽。

相關問題