guslan Geschrieben 29. Juli 2004 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??
_Martin_ Geschrieben 29. Juli 2004 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden