Textströme mit Filtern verarbeiten
Code: 103.2
Du bist nicht angemeldet. Melde dich an, um deinen Lernfortschritt zu speichern und Quizze zu bearbeiten.
Textströme mit Filtern verarbeiten
103.2.L1
- Kernkonzepte von **Textströme** verstehen
- Prüfungsrelevante Befehle und Konfigurationen beherrschen
- Typische Fehlerquellen erkennen und beheben
## Zusammenfassung
Diese Lektion behandelt das LPIC-Thema **Textströme mit Filtern verarbeiten**. Das Thema gehört zum Bereich Textströme und ist Teil des offiziellen Prüfungsstoffs.
Im Fokus stehen die praktischen Grundlagen, die für die Zertifizierung essenziell sind. Wichtige Schwerpunkte sind: cat, grep, sort, cut.
## Wichtige Befehle
- Inhalt folgt in der aktualisierten Version
## Prüfungstipps
- Lesen Sie die Manpages zu allen genannten Befehlen
- Üben Sie Befehle in einer virtuellen Maschine oder Container-Umgebung
- Achten Sie auf die Unterschiede zwischen Distributionen
## Weiterführende Links
- [LPI-Lernmaterial (offiziell)](https://www.lpi.org)
- [Linux Man Pages Online](https://man7.org/linux/man-pages/)
Quiz (12 Fragen)
Wie können Sie mit grep und wc die Anzahl der Prozessoren in /proc/cpuinfo ermitteln?
Erklärung: grep processor /proc/cpuinfo filtert alle Zeilen mit "processor". wc -l zählt die Zeilen — eine pro Prozessorkern. Die unnötige Pipe über cat (cat | grep) ist hier überflüssig.
Welcher Befehl zeigt alle Benutzer an, die eine Bash-Shell haben (in /etc/passwd)?
Erklärung: grep ":/bin/bash$" sucht nach Zeilen, die mit :/bin/bash enden. Das Dollarzeichen ($) ist der reguläre Ausdruck für Zeilenende. cut -d: -f1 extrahiert nur den Benutzernamen.
Wie zählen Sie die Benutzer in /etc/passwd, die KEINEN Zugriff auf eine Bash-Shell haben?
Erklärung: grep -v kehrt die Suche um (invert match). Damit werden alle Zeilen AUSSER denen mit :/bin/bash$ gezählt. Das Dollarzeichen sichert das exakte Ende des Feldes.
Wie listen Sie nur die erste Zeile, die zehnte Zeile und die letzte Zeile von /etc/passwd auf?
Erklärung: sed -n unterdrückt die Standardausgabe. -e '1p' gibt Zeile 1 aus, -e '10p' Zeile 10, -e '$p' die letzte Zeile. Das Dollarzeichen $ steht für die letzte Zeile.
In mypasswd: Wie listen Sie alle Benutzer der Gruppe 1000 korrekt auf, ohne Benutzer mit UID 1000 zu erfassen?
Erklärung: Die GID ist das vierte Feld (nach dem dritten Doppelpunkt). Carol hat zwar UID 1000, aber GID 2000. Der reguläre Ausdruck :1000:[A-Z] trifft nur zu, wenn nach :1000: ein Großbuchstabe folgt — das ist das GECOS-Feld.
Welcher Befehl wählt zufällig eine Person aus dem Main Office für ein Gewinnspiel aus?
Erklärung: sort -R mischt die Zeilen zufällig (random sort). head -1 nimmt den ersten Eintrag. cut -d: -f5 extrahiert das GECOS-Feld, cut -d, -f1 trennt den vollständigen Namen ab.
Wie zählen Sie, wie viele Personen in den Bereichen Finance, Engineering und Sales arbeiten?
Erklärung: cut -d, -f2 extrahiert das Abteilungsfeld (2. Feld nach Komma). uniq -c zählt aufeinanderfolgende identische Zeilen. Da uniq nur benachbarte Zeilen vergleicht, muss zuvor sortiert werden.
Wie erstellen Sie aus mypasswd eine CSV-Datei names.csv mit den Spalten First Name, Last Name und Position?
Erklärung: Die Befehlssequenz: cut extrahiert einzelne Felder, paste fügt sie nebeneinander (tab-getrennt), tr \u0027\t\u0027 , ersetzt Tabulatoren durch Kommata. Das Ergebnis wird in names.csv umgeleitet.
Wie stellen Sie mit md5sum sicher, dass niemand die Datei names.csv unbemerkt manipuliert?
Erklärung: md5sum names.csv > hash.txt erstellt eine Prüfsummendatei. md5sum -c hash.txt verifiziert die Datei gegen den gespeicherten Hash. Bei Änderung (z.B. Jones → James) schlägt die Prüfung fehl.
Mit welchem Befehl teilen Sie eine 100-Zeilen-pro-Tag-Leseaufgabe in Segmente zu je 100 Zeilen auf?
Erklärung: split -l 100 teilt eine Datei in Segmente zu je 100 Zeilen. Die Ausgabedateien heißen standardmäßig xaa, xab, xac usw. Optional kann ein Präfix angegeben werden: split -l 100 buch.txt segment.
Wie schneiden Sie aus der Ausgabe von ls -l nur die Dateinamen heraus, wenn mehrere Leerzeichen zwischen den Spalten stehen?
Erklärung: tr -s \u0027 \u0027 komprimiert mehrere Leerzeichen zu einem einzigen. Danach kann cut -d\u0022 \u0022 -f9 das 9. Feld (Dateiname) extrahieren. ls -l hat ohne komprimierte Leerzeichen 9 Felder.
Welche tail-Option wird verwendet, um einer Datei zu "folgen", während fortlaufend neue Daten hineingeschrieben werden (z.B. Logs)?
Erklärung: tail -f (follow) hält die Datei geöffnet und zeigt neue Zeilen an, sobald sie hinzugefügt werden. Das ist ideal für Log-Dateien wie /var/log/syslog, die während des Systembetriebs wachsen.
✓ Quiz abgeschlossen! 🎉
/ richtig
Karteikarten (8)
Frage
Erklären Sie den Unterschied zwischen >, >> und | bei der Textverarbeitung in der Shell.
Tippe zum Aufdecken →
Antwort
> (Single Arrow): Leitet stdout in eine Datei um (Überschreibt bestehenden Inhalt!) >> (Double Arrow): Hängt stdout an eine bestehende Datei an (append) | (Pipe): Leitet stdout eines Befehls an stdin eines anderen Befehls weiter Beispiel: echo "Hallo" > datei.txt # Überschreibt echo "Welt" >> datei.txt # Hängt an cat datei.txt | grep Hallo # Weiterleitung an grep
Frage
Wofür dienen die Befehle head, tail, nl und wc?
Tippe zum Aufdecken →
Antwort
head → Zeigt die ersten 10 Zeilen einer Datei an (-n X für X Zeilen) tail → Zeigt die letzten 10 Zeilen einer Datei an (-n X für X Zeilen, -f für "follow") nl → Zeilennummern an Datei anhängen ("number lines") wc → Zählt Zeilen (-l), Wörter (-w) und Zeichen (-c) Beispiel: head -n 5 /var/log/syslog | nl | wc -l # Zeigt die ersten 5 Zeilen mit Nummern und zählt sie (ergibt 5)
Frage
Erklären Sie die wichtigsten sed-Operationen: Suchen, Löschen und Ersetzen.
Tippe zum Aufdecken →
Antwort
sed -n /muster/p → Gibt nur Zeilen mit "muster" aus (-n unterdrückt Standardausgabe, p = print) sed /muster/d → Löscht alle Zeilen mit "muster" aus der Ausgabe sed s/muster/ersatz/ → Ersetzt das ERSTE Vorkommen von "muster" durch "ersatz" sed s/muster/ersatz/g → Ersetzt ALLE Vorkommen (global) sed -i.backup s/muster/ersatz/ datei → Bearbeitet Datei direkt (-i), erstellt Backup Beispiel: sed -n /cat/p ftu.txt # Zeilen mit "cat" sed /cat/d ftu.txt # Zeilen OHNE "cat" sed s/cat/dog/g ftu.txt # Alle "cat" → "dog"
Frage
Erklären Sie die Unterschiede zwischen cut, paste und tr.
Tippe zum Aufdecken →
Antwort
cut → Extrahiert Spalten/Felder aus Text (-d für Trennzeichen, -f für Feldnummer) paste → Fügt Dateien nebeneinander zusammen (tab-getrennt, -d für anderes Trennzeichen) tr → Übersetzt, löscht oder komprimiert Zeichen (translate) Beispiele: cut -d: -f1 /etc/passwd # Benutzernamen cut -d: -f1,3 /etc/passwd # Name + UID paste firstname lastname # Dateien nebeneinander tr '\t' ',' < datei.txt # Tabulatoren → Kommata tr -s ' ' # Mehrere Leerzeichen → ein Leerzeichen
Frage
Wie funktionieren sort und uniq zusammen? Was ist die wichtigste Einschränkung von uniq?
Tippe zum Aufdecken →
Antwort
sort → Sortiert Zeilen alphabetisch (-r umgekehrt, -R zufällig, -n numerisch, -u eindeutig) uniq → Zeigt nur eindeutige Zeilen an (-c zählt Vorkommen) WICHTIGE EINSCHRÄNKUNG: uniq erkennt nur BENACHBARTE identische Zeilen! Daher muss VOR uniq immer sortiert werden, wenn alle Duplikate entfernt werden sollen. Beispiel: sort datei.txt | uniq # Alle eindeutigen Zeilen sort datei.txt | uniq -c # Zählt Häufigkeit sort -R namen.txt | head -1 # Zufällige Auswahl
Frage
Wozu dient der Befehl od und wie werden unsichtbare Zeichen sichtbar gemacht?
Tippe zum Aufdecken →
Antwort
od = Octal Dump Zeigt Dateiinhalt in verschiedenen Formaten: od datei → Oktalausgabe od -x datei → Hexadezimalausgabe od -c datei → Zeichenausgabe (\n für Zeilenumbruch sichtbar!) od -An -c datei → Ohne Offset-Spalte Besonders nützlich zum Debuggen von Skripten, um versteckte Zeichen (z.B. \r\n statt \n) zu erkennen. Beispiel: od -c skript.sh | head # Zeigt \n am Ende jeder Zeile
Frage
Wie prüfen Sie die Datenintegrität einer Datei mit md5sum, sha256sum und sha512sum?
Tippe zum Aufdecken →
Antwort
Prüfsummen = kryptografische Hashwerte Erstellen: md5sum datei > md5.txt sha256sum datei > sha256.txt Verifizieren: md5sum -c md5.txt # OK oder FAILED sha256sum -c sha256.txt Wichtig: Bei jeder kleinsten Änderung (auch nur 1 Byte) ändert sich der Hash komplett! Anwendung: Downloadserver stellen Prüfsummen bereit, damit Nutzer die Integrität heruntergeladener ISO-Dateien verifizieren können.
Frage
Wie lesen Sie den Inhalt komprimierter Dateien, ohne sie zu entpacken?
Tippe zum Aufdecken →
Antwort
zcat datei.gz → Zeigt Inhalt von gzip-komprimierten Dateien bzcat datei.bz2 → Zeigt Inhalt von bzip2-komprimierten Dateien xzcat datei.xz → Zeigt Inhalt von xz-komprimierten Dateien Diese Befehle sind nützlich, um Logs oder Textdateien zu durchsuchen, ohne Speicherplatz für die entpackte Datei zu benötigen. Beispiel: zcat ftu.txt.gz | grep cat # Suche in gezipptem Archiv zcat syslog.1.gz | tail -20 # Letzte 20 Zeilen aus gezipptem Log