Таким образом, я обнаружил pcregrep, который обозначает Perl Совместимые регулярные выражения GREP .
, Например, необходимо найти файлы, где' _name' переменная сразу сопровождается' _description' переменная:
find . -iname '*.py' | xargs pcregrep -M '_name.*\n.*_description'
Подсказка: необходимо включать символ разрыва строки в шаблон. В зависимости от Вашей платформы это мог быть '\n', \r', '\r\n'...
Вот пример с помощью GNU grep
:
grep -Pzo '_name.*\n.*_description'
-z
/--null-data
входные и выходные данные Обработки как последовательности строк.
См. также здесь
Вот более полезный пример:
pcregrep -Mi "<title>(.*\n){0,5}</title>" afile.html
Это ищет тег заголовка в файле HTML, даже если это охватывает до 5 строк.
Вот пример неограниченных строк:
pcregrep -Mi "(?s)<title>.*</title>" example.html