Hallo, ich möchte in einer Datei über ein Script bestimmte Zeichen ersetzen, finde aber irgendwie keinen Ansatzpunkt dazu. So etwas sollte doch mit awk oder sed möglich sein oder? Bin für jeden Hinweis dankbar. Gruß Andreas
Am Mon, 08 Jul 2002 schrieb Andreas Schmidt:
ich möchte in einer Datei über ein Script bestimmte Zeichen ersetzen, finde aber irgendwie keinen Ansatzpunkt dazu. So etwas sollte doch mit awk oder sed möglich sein oder?
Ja. Klar. Sed auf jeden Fall, awk weiß ich nicht, in sed sieht das etwa so aus sed -e "s/Zeichenalt/Zeichenneu/g" < datei > datei.neu Achtung: datei und datei.neu dürfen nicht identisch sein, d.h. die veränderte Datei muß einen neuen Namen bekommen. Natürlich kannst Du sie hinterher umbenennen. Zeichenalt ist i.Ü. eine Regular Expression, d.h. hier gelten u.U. besondere Regeln bzgl. pattern matching, Maskieren etc., hängt halt von Deinem Suchstring ab. Das ganze geht natürlich auch mit perl oder interaktiv z.B. mit Vi oder einem anderen Editor. Ah ja, man sed hilft auch weiter. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Christoph Maurer schrieb:
Am Mon, 08 Jul 2002 schrieb Andreas Schmidt:
Ja. Klar. Sed auf jeden Fall, awk weiß ich nicht,
in sed sieht das etwa so aus
sed -e "s/Zeichenalt/Zeichenneu/g" < datei > datei.neu
Achtung: datei und datei.neu dürfen nicht identisch sein, d.h. die veränderte Datei muß einen neuen Namen bekommen. Natürlich kannst Du sie hinterher umbenennen. Zeichenalt ist i.Ü. eine Regular Expression, d.h. hier gelten u.U. besondere Regeln bzgl. pattern matching, Maskieren etc., hängt halt von Deinem Suchstring ab.
danke, genau das habe ich gesucht, funktioniert perfekt !
Gruß
Christoph
Gruß Andreas
Hallo, Am Montag, 8. Juli 2002 10:18 schrieb Andreas Schmidt:
ich möchte in einer Datei über ein Script bestimmte Zeichen ersetzen, finde aber irgendwie keinen Ansatzpunkt dazu. So etwas sollte doch mit awk oder sed möglich sein oder?
Vielleicht ist `tr', was Du suchst.
$ man tr
Beispiel:
$ tr '[A-Z]' '[a-z]'
ersetzt Großbuchstaben durch Kleinbuchstaben.
Gruß
Bertram
--
Bertram Scharpf
On Mon, 08 Jul 2002 at 10:18 (+0200), Andreas Schmidt wrote:
ich möchte in einer Datei über ein Script bestimmte Zeichen ersetzen, finde aber irgendwie keinen Ansatzpunkt dazu. So etwas sollte doch mit awk oder sed möglich sein oder?
Bsp.: cat test.txt | sed -e 's/E/!E!/g' > test2.txt bzw. sed -e 's/E/!E!/g' test.txt > test2.txt ,----[ test.txt ]- | DAS IST EIN TEST! `---- ,----[ test2.txt ]- | DAS IST !E!IN T!E!ST! `---- Siehe auch: sed(1) Natürlich geht auch Perl: Bsp.: cat test.txt | perl -p -e 's/E/!E!/g' > test2.txt oder perl -p -e 's/E/!E!/g' test.txt > test2.txt Letzteres ist v. a. dann sinnvoll, wenn die regulären Ausdrücke sehr komplex werden¹. Ansonsten würde ich für einfache Dinge sed bevorzugen, einfach weil man nicht unbedingt mit Kanonen auf Spatzen schießen muss. ¹ und es mit sed nicht mehr möglich ist (ich weiß nicht, ob es den Fall überhaupt gibt) bzw. man Perl recht gut kann und so Entwicklungszeit spart Gruß, Bernhard -- The feature you'd like to have is probably already installed on your Linux system.
participants (4)
-
Andreas Schmidt
-
Bernhard Walle
-
Bertram Scharpf
-
Christoph Maurer