Regex (в Linux) через несколько строк, в которых вам важны только начальные и конечные слова - PullRequest
0 голосов
/ 28 января 2012

Предположим, у меня был файл, в котором было много текста.В какой-то момент я хотел найти следующий текст в этом файле.Но не совсем этот текст.На самом деле я хотел найти любой текстовый «абзац», который мог бы состоять из нескольких строк, который начинался со строки, начинающейся с «service surfaceflinger», а затем заканчивался строкой «zygote».

Что такое Linuxрегулярное выражение для поиска, который встретит это?

service surfaceflinger /system/bin/surfaceflinger

  class main

   user system

   group graphics

   onrestart restart zygote

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Использование awk:

awk '/^service surfaceflinger/,/zygote$/' file_with_a_lot_of_text

Использование sed:

sed -n '/^service surfaceflinger/,/zygote$/p' file_with_a_lot_of_text

Рекомендуемое чтение: sed & awk .

2 голосов
/ 28 января 2012

Попробуйте что-то вроде этого:

(?ms)^service surfaceflinger.*?zygote$

где:

(?ms) включает многострочный и многоточечный режим (. соответствует любому символу)

^ соответствует началу строки

.*? соответствует любому количеству символов лениво

$ соответствует концу строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...