Page 1 of 1

mit find und sed ersetzen

Posted: 2004-06-03 14:17
by as-n
Hallo,

versuche gerade den Umzug auf den neuen Server vorzubereiten.
Die websites liegen nun nicht mehr in /home/www, sondern in /srv/www/htdocs.
Ich versuche nun mittels folgendem Script, diese Pfade automatisch ändern zu lassen, aber es will nicht:

Code: Select all

for f in `find . -type f`; do sed 's/home/www/srv/www/htdocs/g' <$f >/tmp/replace.$$ && mv /tmp/replace.$$ $f ; done
Es kommt andauernd

Code: Select all

sed: -e expression #1, char 13: Unknown option to `s'
Ich sehe aber den Fehler nicht. Kann wer helfen?

Danke.

Ciao
AS-N

Re: mit find und sed ersetzen

Posted: 2004-06-03 14:29
by captaincrunch
Du hast die "/" falsch maskiert. Richtig müsste es / lauten.

Re: mit find und sed ersetzen

Posted: 2004-06-03 14:37
by as-n
Oh, naklar, danke.

Re: mit find und sed ersetzen

Posted: 2004-06-03 19:43
by thorsten
Benutze ein aktuelles sed (> 4.0 ) und du kannst die Option --in-file benutzen.
Dann sparst du dir die temporäre Datei.
(fürs nächste mal ;))

Re: mit find und sed ersetzen

Posted: 2004-06-03 21:15
by captaincrunch
Weiterer Tip: "#" als Begrenzer macht sich bei Pfadangaben auch immer ganz nett, da spart man sich das quoten. ;)

Re: mit find und sed ersetzen

Posted: 2004-06-04 10:28
by as-n
Brauche nochmal kurz Hilfe, kann man auch irgend wie symlinks so ändern?

In /var/log/httpd/confixx/domains/access sind ja die symlinks zu /home/www/webXXX/log/access_log und ich muss dass ja auch in /srv/www/htdocs/webXXX/log/access_log ändern.

Danke.

AS-N