Sie befinden sich hier: Technik / Linux / sed
Deutsch
English
Mittwoch, 26.09.2018

Einige Anwendungsbeispiele für sed

Mit der folgenden Zeile lassen sich in einer Textdatei test.xml alle Vorkommen eines Zeichenstrings </h2>LF<p> </p> entfernen bzw. durch </h2> ersetzen. LF im zu suchenden String steht für "linefeed" bzw. \n bzw. \x0a.

sed '/<\/h2>$/{N;s/<\/h2>\n<p> <\/p>$/<\/h2>/;}' test.xml

Zur Erklärung:

  • /<\/h2>$/ ist der zu suchende String, umgeben von den beiden begrenzenden Slashes. Dem Slash / vor dem h2 muss das Escape-Zeichen \ vorangestellt werden, das abschließende $ gibt an, dass der String am Ende der Zeile stehen muss.
  • {N;s/<\/h2>\n<p> <\/p>$/<\/h2>/}:
    Das N bedeutet, dass die nächste Zeile eingelesen und an den Arbeitsspeicher angehängt wird.
    Daraufhin wird die Syntax für das Suche/Ersetzen s/SUCHE/ERSETZE/ über den aktuellen Arbeitsspeicher angewendet.
  • <\/h2>\n<p> <\/p>$ wird durch <\/h2> ersetzt.

ACHTUNG: <p> </p> muss händisch vor Ausführung durch <p>&nbsp­;</p> ersetzt werden! Eine Datei mit der Syntax kann hier heruntergeladen werden.