Marcel Schmedes wrote:
habe hier die Info bekommen das ich mit
find / -type f -exec grep -l "string" {} \;
rekursiv in Dateien suchen kann, aber wie kann ich dann in den gefunden Dateien diesen String automatisch duch einen anderen ersetzen?
Müßte mit einer Kombination aus find und perl gehen, ungefähr so: find verzeichnis -type f -print0 | xargs -0 perl -pi -e 's/text1/text2/g' (Vorsicht, nicht getestet, besser nochmal in man-Pages nachlesen und an unwichtigen Dateien bzw. Kopien "üben"!) Das xargs hat hier die Aufgabe, alle von find gefundenen Dateinamen als Argumente an den perl-Aufruf zu übergeben. Durch das -print0 und -0 sollte das auch dann klappen, wenn einzelne Dateinamen Sonderzeichen enthalten. Bei den Texten ist ggf. auf Sonderzeichen zu achten, da der zu ersetzende Text als regulärer Ausdruck angegeben werden muß und auch in dem Ersatztext bestimmte Zeichen Sonderbedeutungen haben. Es ist sicherlich sinvoll, mit dem find die Auswahl der Dateien so weit wie möglich (z.B. mit -name "*.html") einzuschränken, um nicht irrtümlich in Binärdateien oder an sonstigen ungeeigneten Stellen herumzupfuschen. Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/