Как я могу найти многострочный шаблон в файле? - PullRequest
107 голосов
/ 30 сентября 2008

Мне нужно было найти все файлы, которые содержали определенный строковый шаблон. Первое решение, которое приходит на ум, - это использование find по трубопроводу с xargs grep :

find . -iname '*.py' | xargs grep -e 'YOUR_PATTERN'

Но если мне нужно найти шаблоны, которые занимают более одной строки, я застрял, потому что ванильный grep не может найти многострочные шаблоны.

Ответы [ 11 ]

0 голосов
/ 23 июля 2015

@ Marcin: пример awk не жадный:

awk '{if ($0 ~ /Start pattern/) {triggered=1;}if (triggered) {print; if ($0 ~ /End pattern/) { exit;}}}' filename
...