Как Grep до определенного персонажа или строки

Мне нужно извлечь данные журнала из множества файлов журналов на сумму в несколько терабайт. Дело в том, что данные, которые мне нужны, начинаются и заканчиваются шаблонами, которые я могу идентифицировать, но код между ними может быть от 10 до 100+ строк.

Пример:

Start
# lots of lines here
End

В настоящее время я занимаюсь grep -A 50 "Start", который дает мне начало и 50 строк после этого. Однако почти во всех случаях это больше или меньше, чем мне нужно. Больше означает, что полученный файл отчета увеличивается на гигабайты больше, чем нужно, и меньше означает, что я не получаю нужную мне информацию.

Есть ли способ извлечь именно то, что мне нужно, используя стандартные инструменты Unix / Linux?

1 ответ

Решение

Попробуйте это с помощью awk:

awk '/^Start/,/^End/' file

или если вы предпочитаете sed:

sed -n '/Start/,/End/p' file
Другие вопросы по тегам