ersetzen und überschreiben in datei mit shellbefehl

Hallo alle,

ich möchte auf einem linux system alle meineadresse.php dateien
finden und dort "meinestrasse" in "meineneuestrasse" ersetzen.

nun weis ich wie ich mit sed in eine neue datei pipe.
wie ändere ich aber im orginal etwas ab.

geht es nur über ein script?

grüße,
elo
 
find . -name 'meineadresse.php' -exec sed -e 's/alteadresse/neueadresse/' -i {} \;

sollte gehen, aber ohne gewähr

-> man sed
-> man find
 
hm... was meiner meinung soviel macht:

finde eine datei.
nimm den inhalt der datei und ändere darin etwas ab.

das wars :-(

ganz verstehe ich es nicht.
vielleicht würde ein >>output-datei noch was rausschreiben,
aber warum glaubst du, dass in der orginaldatei was geändert wird.
Das Ergebniss von Sed landet auf der Standartausgabe.

grüße,
Elo
 
man sed:

-i[SUFFIX], --in-place[=SUFFIX]

edit files in place (makes backup if extension supplied)

edit:
beweis:

[20:26:38]zhenech@hexenkessel:~$ cat test
blah
[20:26:58]zhenech@hexenkessel:~$ sed -e 's/blah/buh/' -i test
[20:27:16]zhenech@hexenkessel:~$ cat test
buh
 
Vielen dank SargentD,

du hast mir sehr geholfen :-)

Sobald ich wieder an der Linuxmaschine sitze,
werd ichs gleich versuchen.

Schönes Wochenende,
elo
 
Hi SargentD,

lag an mir.

Konnte von hier aus nicht gleich testen und wusste daher nicht, was dieses "i" macht.
Und da ich in erinnerung hatte, dass sed normalerweiße auf standartOut geht, war ich unsicher.

Bis demnächst mal,
elo
 
Zurück
Oben