• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Dateiverarbeitung mit awk

querendus

Cripps Pink
Registriert
06.01.10
Beiträge
154
Hallo!

Ich möchte eine CSV Datei der Form

Code:
102d2011115719;25.08.87;23;TIVA;09.03.11;08:14:00;08:25:00;82;;;;;;
102d2011115719;25.08.87;23;TIVA;09.03.11;08:14:00;08:26:00;83;;;;;;
102d2011115719;25.08.87;23;TIVA;09.03.11;08:14:00;08:27:00;;;;;108;63;80
102d2011115719;25.08.87;23;TIVA;09.03.11;08:14:00;08:29:00;82;;;;;;
102d2010044838;13.05.85;24;TIVA;27.01.10;08:08:00;08:21:00;65;;;;;;
102d2010044838;13.05.85;24;TIVA;27.01.10;08:08:00;08:21:00;59;;;;72;41;58
so manipulieren, das ich folgende Ausgabe bekomme:

Code:
102d2011115719;25.08.87;23;TIVA;09.03.11;08:14:00;08:25:00;82;;;;;;;08:26:00;83;;;;;;;08:27:00;;;;;108;63;80;14:00;08:29:00;82;;;;;;;
102d2010044838;13.05.85;24;TIVA;27.01.10;08:08:00;08:21:00;65;;;;;;08:21:00;59;;;;72;41;58;

Das ganze ist eine CSV Datei, in der ich mehrere Zeilen aneinander hängen möchte, und zwar alle die im ersten Feld den gleichen Wert haben, aber hier nur ab dem 7. Wert.

Ich habe das ganze mit awk probiert, allerdings komme ich hier nicht so recht weiter:

Code:
#!/usr/bin/awk -f

BEGIN{ FS = " *; *" }   
    {
        x = $1
        tmp = $0
        {
            while (x==$1)
            tmp = tmp + ";" + $7 + ";" + $8 + ";" + $9 + ";" + $10 + ";" + $11 + ";" + $12 + ";" + $13 + ";" + $15 + ";"
        }
        print tmp
     }
END{
tmp = $0
    {
        while (x==$1)
        tmp = tmp + ";" + $7 + ";" + $8 + ";" + $9 + ";" + $10 + ";" + $11 + ";" + $12 + ";" + $13 + ";" + $15 + ";"
    }
    print tmp
}

Kann mir hier jemand weiterhelfen?