У меня есть файл журнала, который содержит записи, которые могут быть разделены на несколько строк, и я хочу найти все экземпляры этих записей.
Например:
AAA normal line
BBB normal line
XXX important line
important line continuation 1
important line continuation 2
BBB normal line
normal line continuation 1
AAA normal line
XXX important line
important line continuation 1
important line continuation 2
important line continuation 3
AAA normal line
Все записи начать с кода (AAA, BBB, XXX и т. д. c). Строки, начинающиеся с кода XXX, и связанные с ними строки продолжения - это те строки, которые мне интересны. Строки продолжения начинаются с пробела, и может быть любое количество строк продолжения. Строки, следующие за строками продолжения, могут начинаться с любого кода.
Я думаю об этом как о разновидности сопоставления с отслеживанием состояния (хотя это не может быть решено таким образом) ... ie: Мне нужно сопоставление строк шаблон XXX, а затем все сразу следующие строки, начинающиеся с пробела (пока они этого не сделают).
Как я могу использовать grep, sed или awk для этого, отслеживая файл журнала?
Обновление: Пример желаемого результата:
XXX important line
important line continuation 1
important line continuation 2
XXX important line
important line continuation 1
important line continuation 2
important line continuation 3