Suchen und ersetzen

Romson

Newbie
Hallo,

ich möchte auf meinem Apache 2 eine bestimmte zeichenkette in den files finden und ersetzen.

und zwar aus "home/www/" soll " srv/www/htdocs/" werden

dieser befel funktioniert zwar aber nur bei verzeichnissen bis zu einer bestimmten größe:
perl -pi -e 's/home\/wwww\//srv\/www\/htdcos\//g' `find web24 -type f`

bei größeren verzechnissen bekomme ich immer:
-bash: line 96: /usr/bin/perl: Argument list too long

nun hab ich versucht es mit dem xargs befehl zu lösen:
`find web2 -type f` |xargs perl -pi -e 's/home\/wwww\//srv\/www\/htdcos\//g'


hier bleibt er mir aber bei jeder datei hängen die er nicht editieren kann und macht nicht weiter:
-bash: line 115: html/01/hintergr.jpg: Permission denied


weist vielleicht jemand was ich zusätzlich eingeben muss damit er trotz "permission denied" , weitere dateien durchsucht ?
oder eine andere lösung ?

wäre super da ich gerade einen serverumzug mache, der bis zum wochenende fertig sein muss :(
 

oc2pus

Ultimate Guru
ich nehme dazu dieses script:
http://worldcommunity.com/opensource/utilities/search_and_replace.html

Search and Replace v1.4 | /opensource/utilities/search_and_replace.html |
Updated on October 27, 2001 ~ "Search and Replace" (ok, it's not an original name...) replaces characters in recursive directories and files line by line, with a strong suite of options for prompted replaces. It's a medium size utility written in Perl. It's very useful for replacing things like domain names, etc. On one client's system it processed 13,029 files, with 7,487 replaces, in 11 seconds. It also writes its operation output to a log file, so you can check what it did.
 
OP
R

Romson

Newbie
hi
habs schon hingekriegt...trotzdem danke
das war die lösung:
for i in `grep -ril home\/wwww\/ web24`; do perl -pi -e 's/home\/wwww\//srv\/www\/htdcos\//g' $i; done
 
Oben