wyłączając pierwsze i ostatnie wiersze z sed / START /, / END /

Rozważ wkład:

=sec1=
some-line
some-other-line

foo
bar=baz

=sec2=
c=baz

Jeśli chcę przetwarzać tylko = sec1 = mogę na przykład skomentować sekcję przez:

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

... cóż prawie.

Spowoduje to skomentowanie liniiwłącznie z „= sec1 =” i „= sec2 =” linie, a wynikiem będzie coś w stylu:

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

Moje pytanie brzmi:Jaki jest najłatwiejszy sposób wykluczenia linii początkowej i końcowej z / START /, / END / zakres w sed?

Wiem, że w wielu przypadkach udoskonalenie pazurów „s :::” może dać rozwiązanie w tym konkretnym przypadku, ale jestem tutaj po ogólnym rozwiązaniu.

W "Sed - Wprowadzenie i samouczek„Bruce Barnett pisze:„ Pokażę ci później, jak ograniczyć komendę do, ale nie włącznie z linią zawierającą określony wzorzec. ”, Ale nie byłem w stanie znaleźć, gdzie faktycznie to pokazuje.

W "UŻYTECZNE SKRYPTY JEDNORAZOWE DLA SED„Opracowany przez Erica Pementa, mogłem znaleźć tylko inkluzywny przykład:

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

questionAnswers(5)

yourAnswerToTheQuestion