Verkettung mehrerer Befehle
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy. Lektion 45 von 82.
Du bist nicht darauf beschränkt, nur zwei Befehle zu verbinden. Mit Pipes kannst du so viele Befehle wie nötig verketten, wobei jeder die Ausgabe des vorherigen Befehls verarbeitet.
Füge einfach weitere |-Symbole hinzu, um die Pipeline zu erweitern:
cat data.txt | sort | head -5Dies liest die Datei ein, sortiert alle Zeilen alphabetisch und zeigt dann nur die ersten 5 Ergebnisse an. Die Daten fließen nacheinander durch jeden Befehl von links nach rechts.
Hier ist ein praktisches Beispiel, das eindeutige, sortierte Einträge findet:
cat names.txt | sort | uniqDer Dateiinhalt wird zuerst sortiert (wodurch Duplikate gruppiert werden), anschließend entfernt uniq aufeinanderfolgende doppelte Zeilen. Die Reihenfolge ist hier wichtig: uniq entfernt nur benachbarte Duplikate, daher muss zuerst sortiert werden.
Du kannst noch mehr Stufen hinzufügen. Um zu zählen, wie viele eindeutige Namen es gibt:
cat names.txt | sort | uniq | wc -lJede Pipe fügt einen weiteren Transformationsschritt hinzu. Beim Erstellen längerer Pipelines solltest du darüber nachdenken, welche Eingabe jeder Befehl benötigt und welche Ausgabe er erzeugt. Das Ausgabeformat eines Befehls muss als Eingabe für den nächsten sinnvoll sein.
Aufgabe
EinfachDie Datei visitors.txt enthält eine Liste von Besuchernamen mit Duplikaten. Verwende eine Pipeline mit vier Befehlen, um zu zählen, wie viele eindeutige Besucher es gibt.
Führe einen einzigen Befehl aus, der:
catverwendet, umvisitors.txtzu lesen- mit
sortweiterleitet, um Namen alphabetisch zu sortieren - mit
uniqweiterleitet, um doppelte Einträge zu entfernen - mit
wc -lweiterleitet, um die eindeutigen Namen zu zählen
Hinweis: Verknüpfe alle vier Befehle mithilfe mehrerer
|-Symbole. Denke daran, dassuniqnur direkt aufeinanderfolgende Duplikate entfernt, daher muss die Sortierung davor erfolgen.
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Übe selbstständig: Terminal-Playground