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'

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'

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'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.