grep --before-context 5
zeigt 5 Zeilen vor dem Spiel.
Ich möchte alles vor dem Spiel zeigen.
Mache grep --before-context 99999999
würde funktionieren, ist aber nicht sehr… professionell.
Wie kann ich die gesamte Datei bis zur Übereinstimmung anzeigen?
Akzeptierte Antwort:
Dafür ist Sed besser geeignet.
Mach einfach:
sed '/PATTERN/q' FILE
So funktioniert es:
Für jede Zeile schauen wir, ob sie mit /PATTERN
übereinstimmt :
- wenn ja, drucken wir es und beenden
- ansonsten drucken wir es
Dies ist die effizienteste Lösung, denn sobald es PATTERN
sieht , es hört auf. Ohne q
, sed würde weiterhin den Rest der Datei lesen und nichts damit machen. Bei großen Dateien kann es einen Unterschied machen.
Dieser Trick kann auch verwendet werden, um head
zu emulieren :
sed 10q FILE