Hi
Ich will eine Datei nach einem bestimmten Wort durchsuchen und dieses ersetzen durch ein anderes. Wie kann man das am besten machen... mit grep kann man ja nur suchen oder? und wie kan ich danach das ganze editieren?
Bestimmte Zeichenfolge löschen und ersetzen!
Re: Bestimmte Zeichenfolge löschen und ersetzen!
sed. Wenn Du das ganze im vi machen kannst, hast Du mit sed schon gewonnen:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed 's/zu-suchende-zeichenkette/ersatz-text/g' meine-datei >neue-datei-mit-ersetztem-text
</font><hr></pre></blockquote>
Zu beachten ist natürlich, dass "zu-suchende-zeichenkette" ein regulärer Ausdruck ist. Du solltest also wissen, dass ein "." für ein beliebiges Zeichen steht, "*" nicht das macht, was Du in der Shell erwartest usw.
Ansonsten genau das Programm für Deinen Zweck.
Jochen
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed 's/zu-suchende-zeichenkette/ersatz-text/g' meine-datei >neue-datei-mit-ersetztem-text
</font><hr></pre></blockquote>
Zu beachten ist natürlich, dass "zu-suchende-zeichenkette" ein regulärer Ausdruck ist. Du solltest also wissen, dass ein "." für ein beliebiges Zeichen steht, "*" nicht das macht, was Du in der Shell erwartest usw.
Ansonsten genau das Programm für Deinen Zweck.
Jochen
Re: Bestimmte Zeichenfolge löschen und ersetzen!
Danke... es hat funktioniert!!
Last edited by czadra on 24. Sep 2001 10:47, edited 1 time in total.
Re: Bestimmte Zeichenfolge löschen und ersetzen!
Hi!
Noch ein kleiner Tipp dazu:
Wenn man keine Kopie der Datei anlegen will, sondern den Text direkt in der Datei ändern (oder gar in mehreren Dateien), ist
perl -pi -e 's/text/ersatztext/g' datei(en)
wohl die einfachste Lösung.
Cheers,
GNU/Wolfgang
Noch ein kleiner Tipp dazu:
Wenn man keine Kopie der Datei anlegen will, sondern den Text direkt in der Datei ändern (oder gar in mehreren Dateien), ist
perl -pi -e 's/text/ersatztext/g' datei(en)
wohl die einfachste Lösung.
Cheers,
GNU/Wolfgang
Re: Bestimmte Zeichenfolge löschen und ersetzen!
oder per sed/s/alt/neu/g datei > /tmp/0815;mv /tmp/0815 datei
Re: Bestimmte Zeichenfolge löschen und ersetzen!
oder per sed/s/alt/neu/g datei > /tmp/0815;mv /tmp/0815 datei