• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> 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?