• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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?