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

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

Ich versuche, die Anzahl der Zeilen nach einer problematischen Zeile in einer CSV-Datei zu zählen. Mir ist bewusst, dass ich den grep -a # verwenden kann Syntax zur Ausgabe von # Zeilen, nachdem eine Übereinstimmung gefunden wurde. Mich interessiert nur die tatsächliche Anzahl der Zeilen. Mir ist klar, dass ich die Zahl auf MAX_INT setzen, in eine Datei leiten und weiter verarbeiten könnte.

Ich suche nach einem prägnanten Einzeiler, um mir einfach die Anzahl mitzuteilen.

Irgendwelche Vorschläge?

Akzeptierte Antwort:

{ grep -m1 match; grep -c ''; } <file

Das funktioniert mit GNU grep und ein lseek() fähig infile. Das erste grep stoppt bei 1 -m atch, und der zweite wird -c Zähle jede Zeile, die in der Eingabe verbleibt.

Ohne GNU grep :

{ sed '/match/q'; grep -c ''; } <file

Natürlich mit grep Sie können außerdem alle anderen Optionen verwenden, und es ist überhaupt nicht erforderlich, bei einem Spiel anzuhalten.


Linux
  1. Wie finde ich die Anzahl der im Terminal verfügbaren vertikalen Linien?

  2. Zählen Sie die Gesamtzahl der Vorkommen mit Grep?

  3. So zählen Sie die Anzahl der Zeilen in einer Datei unter Linux (wc- und nl-Befehlsbeispiele)

  4. Wie verwende ich die Zeilen einer Datei als Argumente eines Befehls?

  5. Wie begrenze ich die Anzahl der von grep zurückgegebenen Ergebnisse?

So zählen Sie Wortvorkommen in einer Textdatei

5 Möglichkeiten, die Anzahl der Zeilen in einer Datei zu zählen

Wie zähle ich Zeilen in einem Dokument?

Wie suche ich nach Inhalten nach dem Muster?

Zählen der Gesamtzahl der Übereinstimmungen mit grep statt nur wie viele Zeilen übereinstimmen

Wie bekomme ich Zeilen, die eine Zeichenfolge in einer Datei enthalten?