Veröffentlicht 29. Juli 200421 j 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??
29. Juli 200421 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.