Hallo, On Fre, 23 Feb 2001, Thomas Föcking wrote:
Kennt jemand von Euch ein Tool (vielleicht ist es ja schon bei SuSE dabei), mit dem man bestimmte zeichenketten in einer textdatei mit einer anderen ersetzten kann?
man sed, evtl. info sed zusammen mit man 7 regex.
Ein Beispiel, was ich machen möchte (alles auf bash-ebene): die Zeichenkette "name@e-mail.de" soll ersetzt werden durch: "<A href='name@e-mail.de'>name@e-mail.de</A>" wobei das ganze auch noch dynamisch sein muss ! " *@*.* " soll somit ersetzt werden durch "<A href='*@*.*'>*@*.*</A>"
Als Beispiel (eine Zeile): sed 's%\([[:alnum:].-]*@[[:alnum:].-]*\.[[:alnum:]]*\)% <a href="mailto:\1">\1</a>%g' < EINGABEDATEI > AUSGABEDATEI Wobei EINGABEDATEI und AUSGABEDATEI verschieden sein muessen, da sed Zeilenweise arbeitet und du danach eine leere Datei haettest. Ausserdem kann man mit sed keine Muster, die ueber mehrere Zeilen gehen, ersetzen. Dafuer gibt's dann awk und perl. Hint: Die / in bei sed's s-Befehl duerfen durch andere Zeichen ersetzt werden (also statt s/// geht auch s%%% oder s¡¡¡). Das sollte beim auseinanderklamuesern helfen. Ach ja, noch ein Hinweis: Stichwort 'character class' in man 7 regex. CU David -- 10: strukturiert dieses Programm besteht aus mehreren Funktionen (Kristian Köhntopp)