===== 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/' * 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