AndreasMurr
02-05-2003, 08:45
Erstmal hallo, ich bin hier neu ;)
Mein Problem ist, daß ich eine Textdatei habe, die Zeilenweise Adress-Infos hat. Diese sollen aber nun hintereinander in einer Zeile stehen, wobei die eben blockweise zusammengefaßt werden müssen.
Beispiel:
Ausgangsdatei:
Name: Meier
Vorname: Horst
Adresse: Teststraße 1
Ort: München
Name: Müller
Vorname: Gerhard
Adresse: Hauptstr. 3
Ort: Hannover
Enddatei:
Meier;Horst;Teststraße1;München
Müller;Gerhard;Hauptstr. 3;Hannover
Es kann auch sein, daß mal die Zeile "Vorname" fehlt....
also wäre es wichtig, daß ich ein Ersetzen von "Zeilenende mit Beschreibung der nächsten Zeile" schaffe, da nicht immer 4 Zeilen pro Datenblock da sind, sondern vielleicht auch mal nur 3.
Unter sed würde ich sagen: sed '/$Vorname: //g' was aber nicht funktionieren kann, denn er erkennt ja "$" als Ende der Zeile und vermutet das "Vorname: " dahinter, nicht in der nächsten Zeile.
Das Problem ist einfach, daß sed das Zeilenende nicht als solches interpretieren und löschen kann.
Ich habe das Ganze schonmal in einem Skript mit AWK gesehen, finde dies aber absolut nicht mehr.. :(
Wäre nett, wenn Ihr mir helfen könnt....
Danke
Mein Problem ist, daß ich eine Textdatei habe, die Zeilenweise Adress-Infos hat. Diese sollen aber nun hintereinander in einer Zeile stehen, wobei die eben blockweise zusammengefaßt werden müssen.
Beispiel:
Ausgangsdatei:
Name: Meier
Vorname: Horst
Adresse: Teststraße 1
Ort: München
Name: Müller
Vorname: Gerhard
Adresse: Hauptstr. 3
Ort: Hannover
Enddatei:
Meier;Horst;Teststraße1;München
Müller;Gerhard;Hauptstr. 3;Hannover
Es kann auch sein, daß mal die Zeile "Vorname" fehlt....
also wäre es wichtig, daß ich ein Ersetzen von "Zeilenende mit Beschreibung der nächsten Zeile" schaffe, da nicht immer 4 Zeilen pro Datenblock da sind, sondern vielleicht auch mal nur 3.
Unter sed würde ich sagen: sed '/$Vorname: //g' was aber nicht funktionieren kann, denn er erkennt ja "$" als Ende der Zeile und vermutet das "Vorname: " dahinter, nicht in der nächsten Zeile.
Das Problem ist einfach, daß sed das Zeilenende nicht als solches interpretieren und löschen kann.
Ich habe das Ganze schonmal in einem Skript mit AWK gesehen, finde dies aber absolut nicht mehr.. :(
Wäre nett, wenn Ihr mir helfen könnt....
Danke