Startseite > Textverarbeitung & Suche > sed

sed-Befehlsanleitung: Verwendung des Stream-Editors

`sed`-Befehl (Stream-Editor) ist ein leistungsstarkes nicht-interaktives Textverarbeitungswerkzeug, das zum Bearbeiten von Textströmen (Eingaben, die über Dateien oder Pipes bereitgestellt werden) verwendet wird. Es ermöglicht das effiziente Suchen, Ersetzen, Löschen oder Einfügen von Text, ohne eine Datei öffnen zu müssen. Es wird häufig in Shell-Skripten für automatisierte Texttransformationen verwendet. Mit diesem Leitfaden können Sie die grundlegende Verwendung des `sed`-Befehls sowie fortgeschrittene Funktionen unter Verwendung regulärer Ausdrücke erlernen.

Ü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.


Gleiche Kategorie Befehle