2013-02-17 174 views
1

使用'grep'在文本文件中搜索模式組合的方式是什麼?搜索短語的組合

說,比如我找「的方式」和其他可能的組合等,並「順便」「的方式,通過」

感謝。

回答

1

最簡單的方法可能是使用正則表達式。但是,這也是稍有不當:

egrep '([ ]*(by|the|way)\>){3}' 

這樣做是要匹配的組的三個詞,以空格的話 前用它(如果有的話),並迫使它是一個完整的字(因此末尾的\>),並且如果組中的任何單詞出現三次,則匹配該字符串。

運行它的實例:

$ echo -e "the the the\nby the\nby the way\nby the may\nthe way by\nby the thermo\nbypass the thermo" | egrep '([ ]*(by|the|way)\>){3}' 
the the the 
by the way 
the way by 

前面已經說過,這procudes一個「假」陽性the the the,但如果你可以忍受,我建議做這種方式。

+0

這是接近我想要的,除了它可以找到像「通過溫度計」的短語:) – 2013-02-17 16:38:15

+0

你是對的:)。更新了答案 – nemo 2013-02-17 19:15:57

2

awk是這個工具,而不是grep。在一行:

awk '/by/ && /the/ && /way/' file 

在整個文件:

gawk -v RS='\0' '/by/ && /the/ && /way/' file 

注意,這是搜索的3個字,不尋求與他們之間的空間的那些3個字的組合。那是你要的嗎?

如果您需要更多幫助,請提供更多詳細信息,包括樣品輸入和預期輸出。

+0

這不是我真正想要的。我想按照問題中的要求搜索短語及其組合。 – 2013-02-17 16:38:48