suchen und ersetzen in mehreren Files

H

hansi1279

Grünschnabel
Hallo,

wie kann man Dateien finden und gleichzeitig einen String ersetzen?

find ./ file | sed 's/hallo/Hallo/g'

warum geht das nicht?
 
Code:
find ./ [B]-name[/B] file | sed 's/hallo/Hallo/g'
 
wie kann man das in der Datei ändern? Muss man das mit 'mv /tmp/file.txt' machen? Habs auch schon versucht, aber es wurden file.txt in Verzeichnisse erstellt.
 
Hallo
Wenn du GNU sed hast benutze einfach die Option -i.
Sonst leite die Ausgabe in eine temporäre Datei um.
Code:
find /path -type f -name "name"|sed -i -e 's/foo/bar/g'
Oder eben :
Code:
find /path -type f -name "name"| while read I; 
do
sed -e  's/foo/bar/g' $I  >/temp/temp.tmp  && cat  /temp/temp.tmp >$I;
done

Einen Blick in die Manpage kann nicht schaden.

Gruß Wolfgang
 
warum klappt das nicht?

find . -name '*file1' –o –name '*file2' -print| while read i; do sed 's/hallo/hey/g' $i > $i.tmp && mv $i.tmp $i; done;

bei 2 verschiedenen files müsste es doch ohne Klammer funktionieren
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

manchmal kommt in diesen files auch Hallo oder HALLO vor. wie kann das so machen, dass diese entsprechend ersetzt wird, wie Hey und HEY
 
Zuletzt bearbeitet:
Du bist noch nicht auf den Gedanken gekommen, mal selbstständig einen Blick in die manpage von sed zu werfen. Oder?

Wenn du dafür zu faul bist, lass es halt.
 
Hallo
Ja spätestens jetzt wird es Zeit mal in die Manpage von find und sed zu sehen.
In deinem Fall sollte find beide Dateien finden.

Wenn du nur alle Vorkommen von Hallo HALLO HaLLo usw durch einheitliches Hey ersetzen willst, nutze die Ersetzungsoption i
Wenn du nur zwei Varianten der Ersetzung hast, also HALLO durch HEY und Hallo durch Hey:
$ cat test
Hallo
HALLO
wolle@Nietzsche:/tmp/test
$ sed -e 's/allo/ey/g;s/ALLO/EY/g' test
Hey
HEY

Gruß Wolfgang
 
Frage zu Beispielscripten

Hallo Wolfgang,

mal ne ganz andere Frage, ich seh hier immer wieder Fragen zu "wie mache ich was"

Beispiele hierzu sind auch fuer mich immer mal ganz hilfreich wenn mal der haken im Detail steckt.

Gibt es bereits eine Sektion Shell-Scripte wo Scripte zu finden sind und diese natürlich auch kommentiert sind ?

Gruss Michael
 

Ähnliche Themen

Rekursives Ersetzen

sed - Bitte um Unterstützung

SED: eine Zeile mit einem Grep-Output ersetzen

sed in awk

mehrere Textdateien gleichzeitig öffnen.

Zurück
Oben