![](https://seccdn.libravatar.org/avatar/04e9b659dabb6ef88308aa2c68abeb3e.jpg?s=120&d=mm&r=g)
Dominik Haumann wrote:
z.B. enthält die Datei xyz folgendes: #Das ist ein Test #Vorlagenuser... #Datei Ende
Ich möchte jetzt z.b. "Vorlagenuser" suchen und durch "abcUser" ersetzen...
Hinweise auf sed gab's ja inzwischen genug, also werde ich mal noch eine Lösung mit einem kurzen perl-Aufruf dazu tun: perl -pi -e 's/Vorlagenuser/abcUser/g' xyz Gegenüber einem sed-Aufruf wird die Datei damit scheinbar an Ort und Stelle geändert. (Tatsächlich macht perl -i das auch auf dem Umweg über eine temporäre Datei, aber man muß sich nicht selbst um das zurückumbenennen kümmern.) Kurze Erklärung der Optionen: Durch -p wird der hinter -e angegebene Ausdruck auf jede Zeile der Datei angewendet und das Ergebnis ausgegeben. Mit -i wird die Originaldatei wie oben beschrieben durch die geänderte Fassung ersetzt. Wichtig: Hinter dem Optionsbuchstaben i eine Lücke machen (es sei denn, man weiß was man tut und will der Option wirklich noch ein Argument geben). Also nicht etwa die Optionen zu -pie zusammenziehen! Der Ersetzungsausdruck und dessen Optionen kann natürlich variieren, je nachdem, was man genau erreichen will. Diese Fassung ersetzt *jedes* Vorkommen von "Vorlagenuser" durch "abcUser". Die Lösung mit perl ist vor allem dann praktisch, wenn man eine solche Ersetzung in vielen Dateien vornehmen will, denn man kann einfach alle Dateien gleichzeitig als Argumente angeben und das so in einem Schritt erledigen. Nur sollte man dann sehr genau aufpassen, daß man auch wirklich das Richtige tut... Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/