guslan Geschrieben 29. Juli 2004 Teilen Geschrieben 29. Juli 2004 Hallo! Ich habe eine Datei, die ich gerne in csv umwandeln möchte. Wie mache ich das am besten? Geht das mit awk? Die Datei hat feste Sätze. Feld 1 (SA) ist 7 Zeichen lang Feld 2 (INT) ist 23 Zeichen lang Feld 3 (ZL) ist 8 Zeichen lang Feld 4 (OT) ist 10 Zeichen lang Feld 5 (Name) ist 27 Zeichen lang und so sieht eine Zeile aus: AE 040012345678407260001 612347190011274400KARL%MEIER nach der Behandlung soll es so aussehen: AE ;040012345678407260001 ;61234719;0011274400;KARL%MEIER am besten aber so: AE;040012345678407260001;61234719;0011274400;KARL%MEIER Mit was kam man das am betsen lösen?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_Martin_ Geschrieben 29. Juli 2004 Teilen Geschrieben 29. Juli 2004 So geht es, ist aber nicht unbedingt schön zu lesen awk 'BEGIN {FIELDWIDTHS = "7 23 8 10 27"} {print gensub(/ *$/,"","g",$1) ";" gensub(/ *$/,"","g",$2) ";" gensub(/ *$/,"","g",$3) ";" gensub(/ *$/,"","g",$4) ";" gensub(/ *$/,"","g",$5)}' test.txt Mit dem FIELDWIDTHS teilst du awk mit, dass deine Felder eine feste Breite haben. Der restliche Code dient dazu, die Leerzeichen am Ende der Strings zu löschen (gensub() für jede der 5 Variablen) und dazwischen jeweils ein " einzufügen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
guslan Geschrieben 29. Juli 2004 Autor Teilen Geschrieben 29. Juli 2004 Ja, genau das suchte ich! THX :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.