bloodstix
Goto Top

RegExp Herausforderung

Hallo zusammen,

ich habe ein kosmetisches Problem in einer CSV-Datei (Export des TK-Anlagen-Telefonbuchs).
Dort steht in der 1. Spalte der Kontaktname. Leider ist es wie auch immer, unserem TK-Anlagen-Support beim Import
gelungen das die Anreden (Herr/Frau) zumeist in der Mitte der Zelle stehen. Beispiel:
Mustermann Simon Herr Firma;nummer;beschreibung;Anzeigen
Ich zerbreche mir gerade den Kopf darüber wie ich mit awk/sed o.ä. es hinbekommen kann die jeweilige Anrede aus der Mitte zu entfernen und an den Anfang zu verschieben.
Irgendwie will mir da nicht so recht was einfallen.
Hat da vielleicht jemand eine Idee? Vermutlich denke ich gerade einfach zu kompliziert.

Grüße
bloody

Content-Key: 551271

Url: https://administrator.de/contentid/551271

Printed on: May 19, 2024 at 04:05 o'clock

Mitglied: 143127
Solution 143127 Feb 24, 2020 updated at 11:42:53 (UTC)
Goto Top
https://regex101.com/r/0zpoZo/1

Leider ist es wie auch immer, unserem TK-Anlagen-Support beim Import gelungen das die Anreden (Herr/Frau) zumeist in der Mitte der Zelle stehen
Vermutlich denke ich gerade einfach zu kompliziert.
Wiederholen und dann richtig machen face-smile.
Member: bloodstix
bloodstix Feb 24, 2020 at 11:49:11 (UTC)
Goto Top
Hi @143127,

sieht schonmal gut aus, danke. Leider bekomm ich das Konstrukt nicht in sed gefüttert, hast du da auch noch ein Tipp? Wie würdest du das jetzt auf eine CSV-Datei anwenden?
mit
sed -e "s/([^;]*)(Herr|Frau)\s*(.*)/gm"  
gehts nicht. Da kommt dann
sed: -e Ausdruck #1, Zeichen 30: Nicht beendeter `s'-Befehl 

Grüße
bloody
Mitglied: 143127
Solution 143127 Feb 24, 2020 updated at 12:06:16 (UTC)
Goto Top
sed -e "s/([^;]*)(Herr|Frau)\s*(.*)/gm"
Da fehlt ja auch die Hälfte face-smile
 sed -re 's/([^;]*)(Herr|Frau)\s*(.*)/\2 \1\3/i' test.csv >testneu.csv  
Member: bloodstix
bloodstix Feb 24, 2020 at 12:06:03 (UTC)
Goto Top
Jau damit klappts.
Asche auf mein Haupt. Ich dachte bei deinem Link oben bei "Regular Expression" wäre die vollständige :o
Vielen Dank