2014-12-10 4 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 перебрать тысячи ини-файлов, чтобы искать следующее:

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

+0

Как регулярное выражение, оно выглядит нормально. Это вопрос grep? Вы должны использовать версию квантора layz, хотя 'version = 3.0 [\ s \ S] *? DefaultTemplate = [A-Za-z0-9]' – sln

ответ

1

Попробуйте это:

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

Почти, он действует как OR вместо AND – BelgoCanadian

+0

? Я получаю 2 строки, я не понимаю. –

+0

nvm, ваш достаточно близко, я могу работать с этим, спасибо – BelgoCanadian

Смежные вопросы