Benutzer-Werkzeuge

Webseiten-Werkzeuge


sed

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

sed [2014/09/07 18:23]
127.0.0.1 Externe Bearbeitung
sed [2023/02/21 15:35] (aktuell)
root [Bedienung/Operationen]
Zeile 14: Zeile 14:
 Die Syntax ist ähnlich den Editionsbefehlen im VIM. 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
 +
 +<sxh bash>
 +sed 's/Bla/Blubs/' <file>
 +</sxh>
 +
 +  * 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
 +
 +<sxh bash>
 +sed 's/'/"/'
 +</sxh>
 +
 +  * 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
 +<sxh bash>
 +sed 's/'"'"'/"/'
 +</sxh>
 +  * 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.1410107016.txt.gz · Zuletzt geändert: 2014/09/07 18:23 von 127.0.0.1