AWK kann dies mit Musterbereichen tun, die die Verwendung eines beliebigen regulären Ausdrucks ermöglichen:
echoer | awk '/pattern/,0'
echoer
Die Ausgabe wird beginnend mit der ersten übereinstimmenden Zeile gedruckt pattern
.
AWK basiert auf Mustern und wird in der Regel mit einem solchen Ansatz verwendet, bei dem dieses Muster übereinstimmt. "Dieses Muster" kann ein Bereich von Mustern sein, definiert als "Wenn dieses Muster übereinstimmt, beginnen Sie damit, bis dieses andere Muster übereinstimmt". Dies wird durch Schreiben von zwei durch Komma getrennten Mustern wie oben angegeben. Muster können Textübereinstimmungen sein, wie in /pattern/
, bei denen die aktuelle Zeile mit dem Muster verglichen und als regulärer Ausdruck interpretiert wird. Sie können auch allgemeine Ausdrücke sein, die für jede Zeile ausgewertet werden und als übereinstimmend gelten, wenn ihr Ergebnis nicht null oder nicht leer ist.
In AWK wird standardmäßig die aktuelle Zeile gedruckt.
Wenn Sie all dies zusammenfassen, wird awk '/pattern/,0'
nach übereinstimmenden Zeilen gesucht. Wenn pattern
Sie eine gefunden haben, wird die Standardaktion auf alle Zeilen angewendet, bis die 0
Bedingung zutrifft (ungleich Null). awk '/pattern/,""'
würde auch funktionieren.
Das Handbuch von Gawk geht viel detaillierter vor.