Инструмент, подобный Grep, для отображения определенной области текста относительно шаблона

У меня есть такое текстовое сообщение, опубликованное на высокой частоте:

pose: - position: x: 0.0 y: 0.0 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.0 w: 1.0 - position: x: 0.350104982508 y: 0.729534356813 z: -3.10228873344e-06 orientation: x: -9.84128404362e-07 y: -1.996909502e-06 z: -0.447019362477 w: 0.894524281149 - position: x: 0.455011 y: -1.59228 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.0 w: 1.0 

Я хочу передать его в grep или любой другой подобный инструмент, чтобы показать область, начинающуюся с 12 строк после «поза:» до 20 строк после «поза:». Основные команды для grep позволяют показывать только n строк до или после «pose:». В моем случае то, что я хочу отобразить, – это подчинение:

 position: x: 0.350104982508 y: 0.729534356813 z: -3.10228873344e-06 orientation: x: -9.84128404362e-07 y: -1.996909502e-06 z: -0.447019362477 w: 0.894524281149 

Есть ли инструменты командной строки, которые могут это сделать?

3 Solutions collect form web for “Инструмент, подобный Grep, для отображения определенной области текста относительно шаблона”

  awk '/^pose:/{s=NR+11} (NR>s && NR<s+10){print $0}' 

Когда линия начинается с pose: s устанавливается как NR+11 . если NR больше s и печатается менее s+10 строк.

Ответ ЗАМЕНА:

В основном это вопрос о выделении «5 строк после» из «всех 20 строк после»,

вот мое быстрое предложение

diff <(grep 'pose:' filename -A 20) <(grep 'pose:' filename -A 5)

Конечно, выход diff будет содержать некоторые дополнительные заголовки и знак «<», который вы можете захотеть отфильтровать

это, однако, не имеет большого значения, чтобы отфильтровать

 (grep -A 20 "pose:" file; echo "--")|grep -B 9 '^--' 
  • Распечатайте n строк до match1 И строки после match1 до match2
  • Grep: Зачем нужны модификаторы?
  • Найти файлы, grep для шаблона, возглавить первые 10, затем tar
  • Шаблон Grep, включающий тире и ограничение на расширение имени файла
  • Как найти, какие файлы содержат упоминания имени подстановочного образа?
  • Как печатать только одно совпадение grep, когда tail -f?
  • Найти шаблон из одного файла, указанного в другом
  • GNU параллельна чрезмерно медленной
  • grep: память исчерпана
  • Включение или в шаблон grep
  • Как извлечь IP и URL из файла журнала
  • Interesting Posts

    Как следить за действиями одного конкретного файла

    bash PS1 256 цветов с жирным шрифтом

    Какие команды используются для установки программного обеспечения в AIX?

    Есть ли способ точно указать, к каким файлам обращается команда?

    смонтировать диск во FreeBSD для редактирования файла, используя live CD

    SSH на нескольких серверах и сохранение вывода нескольких команд в файле на локальном сервере

    Как разрешить «xrandr: не удается найти crtc для вывода»?

    как отправлять почту через другой почтовый сервер на linux

    как подключить centos из окон удаленно?

    WPA_CLI, показывающий точку доступа как связанную, когда она не должна

    lsyncd и дополнительные параметры для rsync

    вопрос CMake на RedHat Linux 64

    Как получить pid процесса и вызвать kill -9 на нем в сценарии оболочки?

    Как отобразить всю строку сюжета в `mail`?

    Поиск всех файлов, содержащих слово, а затем подсчет количества строк

    Linux и Unix - лучшая ОС в мире.