GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Alle Dateien bis zum Match anzeigen?

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

Linux
  1. Es steht alles in der Dot-Datei - YADM und Homeshick

  2. Wie fügt man Text vor der ersten Zeile einer Datei ein?

  3. Linux – Wie zeigt man den Dateisystemtyp über das Terminal an??

  4. Wie zähle ich die Anzahl der Zeilen in einer Datei nach einem Grep-Match?

  5. Alle Zeilen vor einem Spiel anzeigen?

Alle Terminalausgaben in einer Datei speichern?

Was sind die Unterschiede zwischen grep, awk und sed?

So verwenden Sie sed, um die letzten n Zeilen einer Datei zu entfernen

Rekursives Cat alle Dateien in einer einzigen Datei

Wie füge ich mit sed Text in die erste Zeile einer Datei ein?

Könnte weniger den angezeigten Anteil der Textdatei anzeigen?