2014-10-09 67 views
2

我正在UNIX中使用'pcregrep'實現多行搜索。我希望匹配在第一次發生時停止。pcregrep匹配在第一次出現時停止

例如如果我有下面的文本文件中的:

mynameishin 
hahahain 
internetin 
fdhsufsdhuiain 
djbssdvbsbsduiain 
sduigsyubsuvasdyivsyifvasin 

我想打印,直到「名稱」之後「泉」的第一次發生。所以我只需要打印:

mynameishin 
hahahain 

我執行:

pcregrep -M 'name.*ain' *.txt 

但是我得到的輸出爲:

mynameishin 
hahahain 
internetin 
fdhsufsdhuiain 
djbssdvbsbsduiain 

回答

5
pcregrep -M 'name.*?ain' *.txt 

,使其成爲非貪婪! !!!!!!!! .*是貪婪的,它會消耗所有並停止在結束。

+0

謝謝,那工作:) – sacs0406 2014-10-09 15:24:12

+0

@ user3921984歡迎您:) – vks 2014-10-09 15:24:36

+1

@ user3921984不要忘了標記這個正確的,如果它爲你工作。 – vks 2014-10-09 15:41:18

相關問題