Unix / Linux - Pipes and Filters
Hallo Zusammen, zukünftige Unix/Linux-Zauberer! Heute machen wir uns auf eine aufregende Reise in die Welt der Pipes und Filter. Keine Sorge, wenn du neu im Programmieren bist – ich werde dich schrittweise durch führen, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Los geht's!
Was sind Pipes und Filter?
Bevor wir ins Detail gehen, lassen Sie uns verstehen, was Pipes und Filter sind. Stell dir vor, du bist in einer Küche und bereitest ein köstliches Gericht zu. Du hast verschiedene Küchenutensilien, die jeweils eine spezifische Aufgabe erfüllen – ein Messer zum Schneiden, einen Mixer zum Mischen, ein Sieb zum Sieben! In Unix/Linux arbeiten Pipes und Filter ähnlich.
- Filter sind Befehle, die Eingaben entgegennehmen, diese verarbeiten und Ausgaben erzeugen.
- Pipes sind die "Rohre", die diese Filter verbinden und es Daten ermöglichen, von einem Befehl zum anderen zu fließen.
Gemeinsam bilden sie ein leistungsstarkes System zur Verarbeitung und Manipulation von Daten. Lassen Sie uns nun einige der häufigsten und nützlichsten Befehle ansehen.
Der grep-Befehl
Was ist grep?
grep
steht für "Global Regular Expression Print". Es ist ein superscharfes Suchwerkzeug, das dir hilft, spezifische Muster in Texten zu finden.
Grundlegende Verwendung
Hier ist die grundlegende Syntax:
grep [Optionen] Muster [Datei...]
Lassen Sie uns mit einem einfachen Beispiel beginnen. Angenommen, wir haben eine Datei namens fruits.txt
mit folgendem Inhalt:
apple
banana
cherry
date
elderberry
fig
grape
Wenn wir alle Früchte finden möchten, die den Buchstaben 'a' enthalten, können wir folgendes verwenden:
grep 'a' fruits.txt
Dies wird Folgendes ausgeben:
apple
banana
grape
Nützliche Optionen
Hier sind einige handliche Optionen für grep
:
Option | Beschreibung |
---|---|
-i | Groß- und Kleinschreibung ignorieren |
-v | Übereinstimmungen umkehren (zeige Zeilen, die nicht übereinstimmen) |
-n | Zeilennummern anzeigen |
-c | Übereinstimmende Zeilen zählen |
Lassen Sie uns einige ausprobieren:
grep -i 'A' fruits.txt # Findet 'a' oder 'A'
grep -v 'a' fruits.txt # Findet Zeilen ohne 'a'
grep -n 'e' fruits.txt # Zeigt Zeilennummern für Zeilen mit 'e'
grep -c 'r' fruits.txt # Zählt Zeilen, die 'r' enthalten
Der sort-Befehl
Was ist sort?
sort
macht genau das, was man erwarten würde – es sortiert Dinge! Es ist wie ein hilfsbereiter Assistent, der deine Daten schnell alphabetisch oder numerisch anordnen kann.
Grundlegende Verwendung
Die grundlegende Syntax ist:
sort [Optionen] [Datei...]
Verwenden wir unsere fruits.txt
Datei:
sort fruits.txt
Dies wird Folgendes ausgeben:
apple
banana
cherry
date
elderberry
fig
grape
Nützliche Optionen
Hier sind einige häufige Optionen für sort
:
Option | Beschreibung |
---|---|
-r | Umgekehrte Reihenfolge |
-n | Numerisch sortieren |
-u | Duplikate entfernen |
-k | Nach spezifischem Feld sortieren |
Lassen Sie uns diese ausprobieren:
sort -r fruits.txt # Umgekehrte alphabetische Reihenfolge
Nun erstellen wir eine Datei namens numbers.txt
mit einigen Zahlen:
5
2
8
1
3
Wir können diese numerisch sortieren:
sort -n numbers.txt
Die pg und more Befehle
Was sind pg und more?
pg
und more
sind Paging-Programme. Sie sind wie höfliche Kellner, die deine Daten eine Seite nach der anderen servieren, anstatt sie dir auf einmal zu überlassen.
Grundlegende Verwendung
Für more
:
more [Optionen] [Datei...]
Für pg
:
pg [Optionen] [Datei...]
Lassen Sie uns more
mit einer längeren Datei ausprobieren. Wir erstellen long_text.txt
mit dem Inhalt dieses Tutorials:
more long_text.txt
Dies wird den Inhalt eine Seite nach der anderen anzeigen. Drücke Leertaste, um die nächste Seite anzuzeigen, oder 'q', um zu beenden.
pg
funktioniert ähnlich, bietet aber mehr Funktionen:
pg long_text.txt
Mit pg
kannst du ':n' verwenden, um zur nächsten Seite zu gehen, ':p' für die vorherige Seite und '/Muster', um nach Text zu suchen.
Alles zusammenbringen: Die Macht der Pipes
Nun kommen wir zum spannenden Teil – die Kombination dieser Befehle mit Pipes! Das Pipe-Symbol '|' verbindet die Ausgabe eines Befehls mit der Eingabe eines anderen.
Lassen Sie uns eine Datei namens employees.txt
mit folgendem Inhalt erstellen:
Alice,Sales,50000
Bob,Marketing,45000
Charlie,Engineering,60000
David,Sales,55000
Eve,Marketing,48000
Frank,Engineering,62000
Nun verwenden wir Pipes, um einige magische Dinge zu tun:
grep 'Sales' employees.txt | sort -k3 -nr
Dieser Befehl macht zwei Dinge:
-
grep 'Sales' employees.txt
findet alle Zeilen, die 'Sales' enthalten - Die Ausgabe wird dann an
sort -k3 -nr
weitergeleitet, das numerisch (-n) in umgekehrter Reihenfolge (-r) nach dem dritten Feld (-k3), dem Gehalt, sortiert.
Das Ergebnis:
David,Sales,55000
Alice,Sales,50000
Ist das nicht toll? Wir haben gerade unsere Daten gefiltert und in einem Durchgang sortiert!
Schlussfolgerung
Und hier haben wir es, Leute! Wir haben die Welt der Pipes und Filter bereist, die mächtige grep
, die ordentliche sort
und die geduldige more
und pg
kennengelernt. Denken Sie daran, Übung macht den Meister. Versuchen Sie, diese Befehle auf verschiedene Weisen zu kombinieren, und Sie werden bald ein Unix/Linux-Pipe-Meister sein!
Frohes Coden und möge deine Pipes stets frei und deine Filter stets sauber sein!
Credits: Image by storyset