(7 Antworten)
Vor 4 Jahren geschlossen.
Mehrere Fragen ähneln dieser, aber ich habe keine Lösung gefunden, die funktioniert, wenn ich über mehrere Zeilen nach einem Muster suchen möchte. Folgendes
sed -n '/First string/,/Second string/ p' my.file
druckt alle Vorkommen des übereinstimmenden Musters, aber ich möchte nur das erste Vorkommen. Ich verwende GNU sed.
Akzeptierte Antwort:
Verwenden Sie q
um explizit zu beenden, wenn das Endmuster erreicht ist.
In GNU sed:
$ cat foo
foo
START
bar
END
blah
START another
$ sed -n '/START/,/END/p; /END/q' foo
START
bar
END
awk
würde es vielleicht einfacher machen, das Endmuster nicht zu wiederholen:
$ awk '/START/{p=1} p; /END/{exit}' foo
START
bar
END