matzewe01 wrote:...
Warum muss das eigentlich partu mit einem "editor" ala ed oder vi gemacht werden? sed ist meiner Meinung nach genau das richtige Tool um Dinge in Scripten zu manipulieren.
Und wie sieht dann Dein Vorschalg mit sed aus? (Ich bin gespannt und lerne gerne :-) )
Warum hast Du etwas gegen editoren in scripten?
Wunderbar, aber dann ist ja die Datei noch nicht geändert. Wie schreibe ich denn die Änderungen in die Datei, nachdem sie sed geändert hat? (Editoren machen das, deshalb habe ich es mit editoren versucht.)
Wunderbar! Das hier ist auch sehr gut: http://sed.sourceforge.net/sed1line_de.html
Nur habe bei meiner bisherigen Suche noch kein Beispiel zum Beschneiden von srings gefunden.
Hat jemand evt. etwas vergleichbaren zu meinem obigen grep Beispiel, das einen string abschneidet?
sed erstzt ja vieles wunderbar. Dies geschied jedoch nie auf Zeilen sondern immer auf Zeichenebene per regex.
Wie kann ich mit sed ganz einfach eine ganze Zeile die einen bestimmten Ausdruck enthält ersetzen?
Ich habe folgende Ausdrücke ohne Erfolg probiert, um die Zeile zu finden in der x vorkommt und diese dann als ganzes zu ersetzen. Ersetzt wird aber immer nur das x und nicht die ganze Zeile.
sed -e '/^x*r/s//mmm = &/ # Soll nach dem Zeilenupbruch suchen als letztes Zeichen
sed -e '/^x*/s//mmm = &/ # Soll die gesamte Zeile die mit x beginnt nehmen
Sucht nach allen Zeilen, die mit x beginnen und ersetzt sie durch "hallo welt"
Super, danke.
Kannst Du mir noch die Regel erklären? Ich verstehe nicht warum es geht?
Ich ersetzen geht doch sonst mit s/RE/Neu/. Es fehlt die ganze s/ Syntax. Dafür gibt es /cNeu [/b Ich hatte mich irgentwie an s/... festgebissen ...
[edit]Es scheit, wohl das hier aus der man page von sed zu sein:
c
text Replace the selected lines with text, which has each embedded newline preceded by a backslash.
Bist du zu faul auszuprobieren!? Also ein wenig Eigeninitiative wird ja wohl zu erwarten sein - dann würdest du nämlich schnell feststellen, dass das nicht richtig ist.
SunTzu wrote:Bist du zu faul auszuprobieren!? Also ein wenig Eigeninitiative wird ja wohl zu erwarten sein - dann würdest du nämlich schnell feststellen, dass das nicht richtig ist.
Ich dachte zu erst es geht, doch dann musste ich sehen, dass damit immer von oben weg immer eine Zeile gelöscht wird. :( sed -e '0,/^h/c xxx' -i test
Wie geht es dass die Suche nach dem ersten Treffer beendet wird?