Pipe mit Grep
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 46 von 82.
Der grep-Befehl wird besonders mächtig, wenn er mit Pipes kombiniert wird. Statt in einer Datei zu suchen, können Sie die Ausgabe eines beliebigen Befehls filtern, um genau das zu finden, was Sie brauchen.
Stellen Sie sich vor, Sie möchten eine bestimmte Datei in einer Verzeichnisliste finden:
ls -l | grep "report"Dies listet alle Dateien im Detail auf, filtert dann, um nur Zeilen anzuzeigen, die „report“ enthalten. Sie erhalten gezielte Ergebnisse, ohne alles manuell durchsuchen zu müssen.
Die Weiterleitung an grep funktioniert mit jedem Befehl, der Textausgabe erzeugt. Um laufende Prozesse zu einem bestimmten Programm zu finden:
ps aux | grep "python"Sie können grep auch mit anderen Befehlen verknüpfen, die Sie gelernt haben. Um zu zählen, wie viele Zeilen ein bestimmtes Wort enthalten:
cat logfile.txt | grep "error" | wc -lDies liest die Datei, filtert Zeilen mit „error“ heraus und zählt sie dann. Die grep-Flags, die Sie zuvor gelernt haben, funktionieren in Pipes genauso — verwenden Sie -i für groß-/kleinschreibungsunabhängige Übereinstimmungen oder -v, um Übereinstimmungen auszuschließen.
Aufgabe
EinfachDie Datei access.log enthält Zugriffsprotokolle des Webservers. Verwenden Sie eine Pipe, um zu filtern und zu zählen, wie viele Anfragen zu einem 500 Fehlerstatuscode geführt haben.
Führen Sie einen einzelnen Befehl aus, der:
- Verwendet
cat, umaccess.logzu lesen - Leitet an
grepweiter, um Zeilen zu filtern, die500enthalten - Leitet an
wc -lweiter, um die Anzahl der passenden Zeilen zu zählen
Hinweis: Verketten Sie die drei Befehle mit dem Symbol
|. Dergrep-Befehl filtert die Ausgabe, undwc -lzählt die verbleibenden Zeilen.
Spickzettel
Der grep-Befehl kann die Ausgabe anderer Befehle mit Pipes (|) filtern.
Verzeichnislisten filtern:
ls -l | grep "report"Laufende Prozesse filtern:
ps aux | grep "python"Mehrere Befehle verketten, um zu filtern und zu zählen:
cat logfile.txt | grep "error" | wc -lAlle grep-Flags funktionieren in Pipes, wie z. B. -i für groß-/kleinschreibungsunabhängige Übereinstimmungen und -v, um Übereinstimmungen auszuschließen.
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Verzeichnisse
Ein Verzeichnis erstellenEin Verzeichnis kopierenEin Verzeichnis verschieben und umbenennenEin Verzeichnis löschenZusammenfassung - Verzeichnisoperationen7Dateiinhalt
Head und TailWortanzahlSort-BefehlUniq-BefehlGrep GrundlagenGrep mit FlagsZusammenfassung - Textdetektiv10Log-Analyzer-Projekt
ProjektübersichtAnzeigen der Logdatei2Navigation
Arbeitsverzeichnis anzeigenDateien auflistenVerzeichnis wechselnAbsolute vs. relative PfadeHome- und Root-VerzeichnisZusammenfassung - Den Weg finden8Umleitung
StandardausgabeIn eine Datei überschreibenAn eine Datei anhängenStandardeingabeStandardfehlerausgabeZusammenfassung – Log-Builder3Dateien
Eine Datei erstellenEine Datei lesenEine Datei kopierenEine Datei verschieben und umbenennenEine Datei löschenZusammenfassung - Dateioperationen6Wildcards und Muster
Die Sternchen-WildcardDie Fragezeichen-WildcardKlammer-WildcardsWildcards kombinierenZusammenfassung - Selektive Operationen9Pipes
Was ist eine PipeVerkettung zweier BefehleVerkettung mehrerer BefehlePipe mit GrepZusammenfassung - Daten-Pipeline