Sed, чтобы удалить диапазон строк из определенной строки совпадения ДО определенной строки совпадения (не включая последнюю строку)

Я прочитал форум в поисках подсказок, как решить мою проблему, но ни одна из связанных тем не подходит для меня, с ограниченными знаниями в области программирования, для применения к моей конкретной проблеме.

Моя проблема заключается в следующем: мне нужно избавиться от мусорных строк, которые сгруппированы по всему файлу, но находятся между кластерами пригодных для использования строк. Я искал руководство по sed и другие информационные источники об удалении диапазонов, соответствующих шаблонам, но они упоминают только об удалении шаблона соответствия UNTIL, а не TILL.

Теперь я хотел бы указать диапазон, для которого sed удаляет строки, начиная с первой строки, которая соответствует строке шаблона, до строки, которая соответствует другому шаблону. Кроме того, sed должен распознавать шаблоны, существующие в конце строк.

Например:

line 1
blah blah 1
blah blah 2
blah blah 3
blah blah 4
line 2
line 3

Результат должен быть:

line 1
blah blah 1
line 2
line 3

Обратите внимание на несколько строк между строкой и строкой 2. В то время как бла-бла 1 нужно оставить, остальные 3 нужно удалить.

Спасибо!

11
задан shellter 16 March 2012 в 15:51
поделиться