Einfügen an CfCe

nierewa

Lt. Junior Grade
Registriert
Juni 2008
Beiträge
414
Hi,
Ich habe eine Textdatei in folgendem Schema:

Adresse
Name: Klaus, Meier
Ort: Bochum
Ende:Adresse

In der Art stehen mehrere "Paare" in der Datei.
Bei manchen kommt nach Ort noch Straße

Ich muß nach dem Namen ein ; einfügen:

Adresse
Name: Klaus, Meier;
Ort: Bochum
Ende: Adresse

Wie kann ich das realisieren? Nach Ort suchen und am Ende der vorhergehenden Zeile ein ; einfügen .
 
Je nachdem wie du es einliest / was du nutzt ist das ein einzeiler.
Unter linux sollte der Zeilenumbruch als \n dargestellt sein.
Somit kannst du einfach die gesamte Datei einlesen und ein string-replace durchführen, wobei du
"\nOrt" durch ";\nOrt" ersetzt.

Ich habe gerade folgendes getestet:
In vim die Datei öffnen und folgendes eingeben löst dein Problem:
:%s/\nOrt/;\rOrt/g

Dabei muss man aufpassen, dass der zweite Part "\rOrt" ein \r und kein \n beinhaltet.
\r und \n sind ähnlich, aber haben subtile Unterschiede: https://vim.fandom.com/wiki/Search_and_replace

Wenn du unter Windows bist musst du eine alternative zu vim suchen (jeder editor sollte replace unterstützen) und du musst \n und \r durch die Windows varianten ersetzen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nierewa und benneq
Cool, danke.
Ich versuch mal mein Glück :D
 
Schau mal in Richtung 'reguläre Ausdrücke'.

Da suchst Du komplett mit Kontext und kannst die betroffene Zeile in den Suchausdruck nehmen.
Mit dem "Ort" kann es Dir jederzeit passieren, daß Du da noch ne Straße oder PLZ oder was weiß ich davorgestellt bekommst und schwupps funktioniert der ganze Ansatz nicht mehr.
 
Hallo, kurze Rückmeldung.
Es hat funktioniert. Ich hab den RJ Texteditor verwendet.

HIer muß man Windows konform "\r\nOrt" suchen und mit ";\r\nOrt" ersetzen.
Dabei müssen reguläre Ausdrücke aktiviert sein.
 
Zurück
Oben