sed/awk - print text zwischen Muster überspannt, die über mehrere Zeilen

Ich bin neu in scripting und versuchte zu lernen, wie zu extrahieren text, der vorhanden ist zwischen zwei verschiedenen mustern. Allerdings bin ich noch nicht in der Lage, herauszufinden, wie Sie zum extrahieren von text zwischen zwei mustern in das folgende Szenario:

Wenn ich mein input-Datei Lesen:

Hi I would like
to print text
between these 
patterns

und voraussichtlich meine Ausgabe ist wie:

I would like
to print text
between these 

also mein erstes such-Muster "Hi" und überspringen Sie dieses Muster, aber drucken alles, was existiert, in der gleichen Zeile, die Muster abgestimmt. Meine zweite such-Muster "Muster" und ich würde gerne komplett zu vermeiden, drucken Sie diese Zeile oder alle Zeilen, die Sie darüber hinaus.

Ich habe versucht, die folgenden:

sed -n '/Hi/,/patterns/p' test.txt 

[output]

Hi I would like
to print text
between these 
patterns 

Weiter habe ich versucht:

`awk ' /'"Hi"'/{flag=1;next} /'"pattern"'/{flag=0} flag { print }'` test.txt 

[output]

to print text
between these

Kann mir jemand helfen bei der Identifizierung, wie Sie diese erreichen?
Vielen Dank im Voraus

Schreibe einen Kommentar