• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

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?