2014-12-10 62 views
0

考慮以下grep的正則表達式多

[Settings] 
Flags=17 
InHouse=0 
PrintMode=4 
version=3.0 
Background Color=16051165 
AutoSaveMin=900000 
DefaultTemplate=Untitled.ipt 
Save template=1 

我使用grep遍歷成千上萬的INI文件,以查找以下:

version=3.0 

DefaultTemplate=[alphanumeric] 
下面

不會返回任何結果,我錯過了什麼?

版本= 3.0 [\ S \ S] * DefaultTemplate = [A-ZA-Z0-9]

+0

可能重複[如何找到跨越多個模式使用grep?](http://stackoverflow.com/questions/2686147/how-to-find-patterns-across-multiple-lines-using-grep) – Wrikken 2014-12-10 22:52:00

+0

作爲一個正則表達式看起來沒問題。這是一個grep問題嗎?你應該使用layz量詞版本,雖然'version = 3.0 [\ s \ S] *?DefaultTemplate = [A-Za-z0-9]' – sln 2014-12-10 23:06:03

回答

1

試試這個:

grep -P '(DefaultTemplate=[\w\.]+|version=[\d\.]+)' * 
+0

幾乎,它的行爲像一個OR而不是AND – BelgoCanadian 2014-12-10 23:00:14

+0

?我得到2條線,我不明白你的意思。 – 2014-12-10 23:03:57

+0

nvm,你已經夠接近了,我可以與之合作,謝謝 – BelgoCanadian 2014-12-10 23:34:10