txt nach csv

H

hilli

Grünschnabel
Hallo Leute,

folgender Text soll in eine csv-Datei umgewandelt werden
Code:
Globetrotter Ausrüstung
Freiberger Str. 39
01067 Dresden
Deutschland
Telefon: (+49) 0351 / 4952116
Fax: (+49) 0351 / 4961089
shop-dresden@globetrotter.de

Sport Scheck GmbH
Webergasse 1 / Altmarktgalerie
01067 Dresden
Deutschland
Telefon: (+49) 0351 / 48505 0
Fax: (+49) 0351 / 48505 44
filiale_dresden@sportscheck.com

antrieb der fahrradladen GmbH
Torsten Schubert
Könneritzstr. 7
01067 Dresden
Deutschland
Telefon: (+49) 0351 / 8582059
Fax: (+49) 0351 / 858129
info@antrieb.com

usw.

Kann da jemand helfen? Soll dann so aussehen:
Code:
"Globetrotter Ausrüstung",
"Freiberger Str. 39",
"01067", "Dresden",
"Deutschland",
"Telefon: (+49) 0351 / 4952116",
"Fax: (+49) 0351 / 4961089",
"shop-dresden@globetrotter.de"
,,
...

Bin newbie, hab schon versucht mir mit sed was zusammenzubasteln. Aber über die ersten " kome ich nicht raus. Danke schonmal.

cheers
h
 
Mit awk solltest Du weiter kommen, z.B.
Code:
 awk '{if ($0=="") {print "''" }else {print "\""$0"\","}}' tmp.text
Leider werden die '' nicht ausgegeben, auch nicht, wenn man sie mit '\'' angibt, aber vielleicht faellt dazu jemandem anders etwas ein.
[edit] Nicht elegant, aber folgendermassen funktioniert es:
Code:
awk -vSINGLE=\' '{if ($0=="") {print SINGLE SINGLE }else {print "\""$0"\","}}' tmp.text
[/edit]
 
Zuletzt bearbeitet:
Super, dummerweise habe ich gerade festgestellt, dass das Ergebnis so aussehen muss:
Code:
"Globetrotter Ausrüstung","Freiberger Str. 39","01067", "Dresden","Deutschland","Telefon: (+49) 0351 / 4952116","Fax: (+49) 0351 / 4961089","shop-dresden@globetrotter.de",,

also alles in einer Zeile.
 
Super, dummerweise habe ich gerade festgestellt, dass das Ergebnis so aussehen muss:
Code:
"Globetrotter Ausrüstung","Freiberger Str. 39","01067", "Dresden","Deutschland","Telefon: (+49) 0351 / 4952116","Fax: (+49) 0351 / 4961089","shop-dresden@globetrotter.de",,

also alles in einer Zeile.
Naja, dann brauchst Du nach dem awk-code nur noch die Zeilenumbrueche zu entfernen. Das geht mit sed, ich bin mir sicher, dazu schonmal den einen oder anderen Thread hier im unixboard gesehen zu haben.
Ach ja, und das, was ich als single quotes gelesen hatte, muesstest Du dann natuerlich auch noch zu Kommata umwandeln, aber das geht schon auf der awk-Ebene. Wenn Du statt print gleich printf fuer den $0 Teil in awk nimmst, brauchst Du gar kein sed mehr.
Code:
 
Zurück
Oben