Ruediger Noack <[EMAIL PROTECTED]> schrieb: > Moin > > Ich muss gerade eine csv-Datei (Feldtrenner '|') bearbeiten. Dabei sollen > in einem (Namens-) Feld mit Komma angehängte Titel > (", DR.", ", DR., PROF.", ", DR.-ING." usw. gelöscht werden. > > Ich finde den Beginn der zu löschenden ZK. Allerdings gelingt es mir > bisher nicht, nur bis zum 1. Auftreten des Feldtrenners zu löschen, > sondern nur bis zum letzten: > > ---snip--- > sed 's/,.*DR\..*\(|\)/\1/' > ---snip--- > > Kann mir jemand auf die Sprünge helfen?
Mit s löschst du ja nicht, du ersetzt. Und hier ersetzt du alles, was mit ", DR." beginnt (das Leerzeichen könnte beliebiges sein), dann beliebig viele beliebige Zeichen hat und dann ein | durch eben dieses geklammerte |. Tut sed 's/,.*DR\.[^|]*\(.*\)/\1/' das was du willst? Ich habe es mangels Vorlage und Lust nicht ausprobiert, aber ich wollte sagen: ", DR:" und alles danach, was kein | ist, gefolgt von einem beliebigem zweiten Teil, ersetzen durch diesen zweiten Teil. Gruß, Frank -- Frank Küster, Biozentrum der Univ. Basel Abt. Biophysikalische Chemie -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)