SED: Wie kann ich mit Sed jede Zeile nach der ersten Instanz eines Strings drucken?

4

Ich habe eine Datei mit einem ähnlichen Format ...

16:28 asdfasdf
16:29 4398upte
16:30 34liuthr
16:31 34tertio

Wie kann ich mit SED jede Zeile einschließlich und nach der Zeile mit "16:30" ausdrucken?

Das Ergebnis wäre ...

16:30 34liuthr
16:31 34tertio

Im Moment benutze ich sed wie folgt, aber ich muss die Zeilennummer der ersten Zeile manuell finden, z. "562697":

sed -n '562697,$p'
barrrista
quelle

Antworten:

7

Adressen in sed kann entweder Zeilennummern oder Muster sein. Versuche dies:

sed -n '/16:30/,$p'

Wenn das Muster a enthält /Sie können es mit einem entkommen \. Zum Beispiel, um zu suchen 16/30 anstatt 16:30, Versuche dies:

sed -n '/16\/30/,$p'
Nicole Hamilton
quelle
Was ist, wenn ich 16/30 suchen musste? Ich bin nicht sicher, wie ich die Syntax in diesem Fall ändern soll. Vielen Dank!
barrrista
@barrrista Ich habe meine Antwort bearbeitet, um zu zeigen, wie man dem Charakter mit einem Backslash entgeht. Hoffe das hilft.
Nicole Hamilton
5

Verwenden Sie einen regulären Ausdruck in der Adresse:

sed -n '/^16:30/,$p'

oder

sed '/^16:30/,$!d'
choroba
quelle