Как я могу искать многострочный шаблон в файле?

113
задан Reinstate Monica Please 25 July 2014 в 18:07
поделиться

3 ответа

Таким образом, я обнаружил pcregrep, который обозначает Perl Совместимые регулярные выражения GREP .

, Например, необходимо найти файлы, где' _name' переменная сразу сопровождается' _description' переменная:

find . -iname '*.py' | xargs pcregrep -M '_name.*\n.*_description'

Подсказка: необходимо включать символ разрыва строки в шаблон. В зависимости от Вашей платформы это мог быть '\n', \r', '\r\n'...

93
ответ дан Oli 24 November 2019 в 02:39
поделиться

Вот пример с помощью GNU grep:

grep -Pzo '_name.*\n.*_description'

-z / --null-data входные и выходные данные Обработки как последовательности строк.

См. также здесь

71
ответ дан rogerdpack 24 November 2019 в 02:39
поделиться

Вот более полезный пример:

pcregrep -Mi "<title>(.*\n){0,5}</title>" afile.html

Это ищет тег заголовка в файле HTML, даже если это охватывает до 5 строк.

Вот пример неограниченных строк:

pcregrep -Mi "(?s)<title>.*</title>" example.html 
15
ответ дан rogerdpack 24 November 2019 в 02:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: