Archiv verlassen und diese Seite im Standarddesign anzeigen : ersetzten
Hallo
ich würde gerne in einer current working Directory alle gefunden Dateien mit einem String, ersetzen, inclusive subdirectories.
Ansatz ist:
find . -type f| xargs grep = '/../../test/';
also = '/../../test/'; steht exact so drin in einigen php Dateien und wuerde es gerne nach = '/var/www/html/test/'; ersetzten
würde mich wirklich über Unterstützung sehr freuen
Grüße
Frank
anda_skoa
11-10-2002, 21:54
ich benutze dafür dieses Script
#!/bin/bash
# replace.sh file XXX YYY
# replaces all XXX with YYY in file file
cat $1 | sed s/$2/$3/g > $1.bak && mv $1.bak $1
in dieser Art und Weise (ich habs mit m3u gemcaht, mp3 playlists, als sich mein mountpoitn geändert hat)
#> find . -name "*.php" -exec replace.sh {} "/../../test/" "/var/www/html/test/" \;
Ich würde es sicherheitshalber aber vorher in einem Verzeichnis mit ein paar Kopien der echten Datein versuchen :)
Ciao,
_
super das klappt hervorragend ... mit normalen Ausdruecken. Denn fuer mein spezielles Vorhaben muss ich './' und '../../' also auch mit den Hochkommas ersetzten, und da verweigert das Script seinen Dienst. Ich hab schon schon verschiedene Varianten mit zusaetzlichen Hochkommas und/oder Anfuehrungszeichen probiert, aber es hilft leider nicht. Haettest du da nen Tipp ?
Grüß
Frank
anda_skoa
12-10-2002, 13:42
Probier im script statt
sed s/$2/$3/g
das hier
sed s#$2#$3#g
Ciao,
_
ja danke super klappt wunderbar :cool:
Grüße
Frank
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.