rokom-computer-cli-sed

Befehl: sed

Thema: Mit sed Textdateien manipulieren

Zielgruppe: CLI-Nutzer

Motivation: Schnelles Werkzeug für Textdateien

Inhaltsverzeichnis

sed

Der Befehlsname ist das Kürzel von stream editor und ist geeignet um große oder/und viele Dateien zu manipulieren. Bei wiederkehrenden Aufgaben kann sed gut in Scripten eingesetzt werden.

Dieser Befehl kann noch viel mehr als massenhaft Texte zu ändern, zu korrigieren oder zu aktualisieren. Doch ich möchte Benutzern helfen, die eine kleine Übersicht über möglicherweise häufig benötigte Funktionen für Textdateien suchen.

Die folgenden Funktionen habe ich zur Sicherheit so gestaltet, dass die Originaldatei erhalten bleibt. Selbstverständlich kann bei genügender Erfahrung gleich an der Quelldatei gearbeitet werde.

Textdateien

Hiermit sind alle Dateien gemeint, die mit einem Texteditor bearbeitet werden können, also das Gegenteil von binären Dateien.

Beispielsweise mit folgenden Endungen: css, csv, html, info, me, md, php, sh, svg, txt, ohne Endung und weitere.

    Los gehts

    Zeilen bearbeiten

    Erste Zeile löschen:
    sed "1d" Datei.txt > Datei_neu.txt


    Leerzeilen löschen mit allen nicht sichtbaren Zeichen und Steuerzeichen:
    sed "/^\s*$/d" Datei.txt > Datei_neu.txt


    Leerzeichen am Zeilenanfang löschen, auch mehrere:
    sed "s/^ *//" Datei.txt > Datei_neu.txt


    Leerzeichen am Zeilenende löschen, auch mehrere:
    sed "s/ *$//" Datei.txt > Datei_neu.txt


    Zeilen, die mit Muster „@“ beginnen, löschen:
    sed "/^@/d" Datei.txt > Datei_neu.txt


    Zeile ersetzt alles, was „Start“ als Zeilenanfang besitzt und wird mit „Beginn“ komplett ersetzt:
    sed "s/^Start.*$/Beginn/" Datei.txt > Datei_neu.txt


    Nach jeder Zeile, eine Leerzeile einfügen:
    sed -e "s/$/\n/g" Datei.txt > Datei_neu.txt


    Neue Zeile vor Zeile 42 einfügen, mit dem Wort „Start“:
    sed "42iStart" Datei.txt > Datei_neu.txt


    Neue Zeile nach Zeile 42 einfügen, mit dem Wort „Start“:
    sed "42aStart" Datei.txt > Datei_neu.txt


    Neue Zeile nach der letzten Zeile einfügen mit dem Wort „Ende“:
    sed "$aEnde" Datei.txt > Datei_neu.txt

    Ergänzungen

    Gerne nehme ich Anregungen und Verbesserungen entgegen, danke.