So wählen Sie Linien zwischen zwei Markierungsmustern aus, die bei awk / sed mehrfach auftreten können

Verwendenawk odersed Wie kann ich Linien auswählen, die zwischen zwei verschiedenen Markierungsmustern auftreten? Möglicherweise sind mehrere Abschnitte mit diesen Mustern markiert.

Zum Beispiel: Angenommen, die Datei enthält:

abc
def1
ghi1
jkl1
mno
abc
def2
ghi2
jkl2
mno
pqr
stu

Und das Startmuster istabc und Endmuster istmno Also brauche ich die Ausgabe als:

def1
ghi1
jkl1
def2
ghi2
jkl2

Ich benutze sed, um das Muster einmal abzugleichen:

sed -e '1,/abc/d' -e '/mno/,$d' <FILE>

Gibt es einen Weg hinein?sed oderawk mache ich das wiederholt bis zum ende der datei?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage