Benutzer-Werkzeuge

Webseiten-Werkzeuge


sed

Allgemein

  • SED → Stream Line Editor
  • Ließt eine Datei zeilenweise aus, nimmt Änderungen vor und gibt sie zeilenweise auf stdout wieder aus
  • Gut für Manipulation von Dateien (Konfig-Files) - nicht geeignet um Dateien auszuwerten → dafür ist awk besser; sed gibt alles was es einließt auch wieder aus
  • gibt alle Daten die es einließt auch wieder aus

Bedienung/Operationen

Syntax: sed ' Bereich Operation ' Datei

Die Syntax ist ähnlich den Editionsbefehlen im VIM.

HowTo

Escapen von single Quotes (einfachen Anführungszeichen

  • für gewöhnlich sieht ein Aufruf von sed so aus

sed 's/Bla/Blubs/' <file>

  • das Script/Befehl für sed steht in ' damit er durch die Bash nicht expandiert wird/interpretiert wird
  • würde man jetzt eine Operation durchführen wollen die „'“ als Zeichen enthält, hätte man das Problem das die Bash das „'“ als Ende des Ausdrucks sehen würde

sed 's/'/"/'

  • obiges würde fehlschlagen, da die Bash das zweite „'“ als Ende des Ausdrucks wertet und nach dem „“„ auf ein schließendes “„“ wartet
  • auch ein escapen via „\“ funktioniert nicht, da das nur innerhalb von sed als ecsape verstanden wird
  • Lösung man zerstückelt das Script in einzelne Strings

sed 's/'"'"'/"/'

  • der erste String ist 's/' (in „'“ eingeschlossen)
  • der zweite String ist „'“ (in „“„ eingeschlossen)
    • die Bash ignoriert das “'„ zwischen den Anführungszeichen, weil der String mit “„“ beginnt und es ein schließendes „“„ erwartet
  • der dritte String ist '/“/' (in „'“ eingeschlossen)
  • technisch sieht die Bash 3 Strings die hintereinander ohne Leerzeichen folgen, löscht alle Anführungsstriche und übergibt sie als einen Parameter an sed
sed.txt · Zuletzt geändert: 2023/02/21 15:35 von root