исключая первую и последнюю строки из sed / START /, / END /

Рассмотрим вход:

=sec1=
some-line
some-other-line

foo
bar=baz

=sec2=
c=baz

Если я хочу обработать только = sec1 =, я могу, например, закомментировать раздел:

sed -e '/=sec1=/,/=[a-z]*=/s:^:#:' < input

... Ну, почти.

Это прокомментирует строкиincluding & Quot; = Sec1 = & Quot; и & quot; = sec2 = & quot; линии, и результат будет что-то вроде:

#=sec1=
#some-line
#some-other-line
#
#foo
#bar=baz
#
#=sec2=
c=baz

Мой вопрос:What is the easiest way to exclude the start and end lines from a /START/,/END/ range in sed?

Я знаю, что во многих случаях уточнение & quot; s ::: & quot; Когти могут дать решение в этом конкретном случае, но я здесь за общим решением.

В & quot;Sed - Введение и учебник& Quot; Брюс Барнетт пишет: "Я покажу вам позже, как ограничить команду до, но не включая строку, содержащую указанный шаблон.", Но я не смог найти, где он на самом деле показывает это.

В & quot;ПОЛЕЗНЫЕ ОДНО-ЛИНИЙНЫЕ СКРИПТЫ ДЛЯ САС& Quot; Составленный Эриком Пиментом, я смог найти только инклюзивный пример:

# print section of file between two regular expressions (inclusive)
sed -n '/Iowa/,/Montana/p'             # case sensitive

Ответы на вопрос(5)

Ваш ответ на вопрос