Überblick über sed
`sed` liest zeilenweise aus dem Eingabestrom und verarbeitet die Eingaben gemäß den angegebenen Regeln (Skripten), bevor es die Ergebnisse an die Standardausgabe sendet. Die Originaldatei wird standardmäßig nicht geändert; um die Änderungen in einer Datei zu speichern, müssen Sie eine Umleitung (`>`) verwenden oder die Option `-i` verwenden.
Hauptfunktionen von sed
`sed` wird hauptsächlich für die folgenden Zwecke verwendet:
Wichtige Anwendungsbereiche
- Text ersetzen/übertragen: Ersetzt bestimmte Zeichenfolgen in einer Datei durch andere Zeichenfolgen. (Am häufigsten verwendeter Zweck)
- Zeilen löschen/hinzufügen: Löscht Zeilen, die ein bestimmtes Muster enthalten, oder fügt neue Zeilen an bestimmten Stellen ein.
- Mustererkennung und Ausgabe: Gibt nur die Zeilen aus, die einem bestimmten Muster entsprechen, oder verarbeitet nur einen bestimmten Bereich von Zeilen.
- Dateiformat ändern: Ändert das Format von Textdateien oder sortiert Daten neu.
- Skriptautomatisierung: Spielt eine zentrale Rolle in Shell-Skripten, die eine große Anzahl von Textdateien verarbeiten.
Grundstruktur von sed
Die grundlegende Befehlsstruktur von `sed` lautet `sed [OPTIONS] 'Skript' [EINGABEDATEI...]`. Hierbei hat 'Skript' die Form `[Adresse]Befehl[Argumente]`, wobei der wichtigste Befehl `s` (substitute, ersetzen) ist.
Wichtige sed-Befehloptionen
`sed` bietet eine Vielzahl von Optionen zur Eingabeverarbeitung, Skripterstellung und Ausgabesteuerung, die eine flexible Textbearbeitung ermöglichen.
1. Skript- und Dateioptionen
2. Ersetzungs(s) Befehlsflaggen
3. Weitere nützliche Befehle
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`sed` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Beispielanwendungen
Lernen Sie, wie Sie die Inhalte von Textdateien effektiv suchen, ersetzen und löschen können, anhand verschiedener Anwendungsbeispiele des `sed`-Befehls.
Alle 'old' in 'new' innerhalb einer Datei ersetzen
sed 's/old/new/g' example.txt
Ändert alle Vorkommen des Wortes 'old' in der Datei `example.txt` in 'new' und zeigt das Ergebnis an der Standardausgabe an.
Direktes Ersetzen von Zeichenfolgen in der Originaldatei
sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf
Ändert 'DEBUG=true' in 'DEBUG=false' in der Datei `config.conf` direkt und erstellt eine Sicherung der Originaldatei (mit der Erweiterung `.bak`).
Löschen einer bestimmten Zeile
sed '5d' log.txt
Löscht die 5. Zeile in der Datei `log.txt` und gibt das Ergebnis aus.
Löschen eines Bereichs von Zeilen
sed '10,20d' document.txt
Löscht den Inhalt von der 10. Zeile bis zur 20. Zeile in der Datei `document.txt` und gibt das Ergebnis aus.
Löschen von Zeilen mit bestimmten Mustern
sed '/WARNING/d' errors.log
Löscht alle Zeilen in der Datei `errors.log`, die das Wort 'WARNING' enthalten, und gibt das Ergebnis aus.
Einfügen einer Kopfzeile in den Dateiinhalte
sed '1i\Name,Alter,Stadt' data.csv
Fügt eine neue Kopfzeile über der ersten Zeile in der Datei `data.csv` ein.
Löschen leerer Zeilen
sed '/^$/d' text.txt
Löscht alle leeren Zeilen in der Datei `text.txt`. `^$` ist der reguläre Ausdruck für leere Zeilen.