Mit Bordmitteln 2 Files vergleichen und richtige Spalte ersetzen?

02/12/2015 - 20:07 von Michael Hagedorn | Report spam
Hallo.
Ich habe hier folgendes Problem:
In file1.csv steht:

jg-11;Meier;Fritzchen;meifri;12345;
jg-11;Mueller;Haenschen;muehae;10002;
jg-11;Schmidt;Lieschen;schlie;10034;

Dabei ist die 4. Spalte der entsprechende Login des Users, der sich aus
Buchstaben (und bei Doppelungen auch Zahlen) zusammensetzt.

In file2.csv steht:

Fach1;AL;Meier;Fritchen
Fach1;AL;Mueller;Haenschen
Fach2;BE;Meier;Fritchen
Fach2;BE;Schmidt;Lieschen

Dabei steht in Spalte 1 der belegte Kurs, in Spalte 2 der Name der
Kursleitung und dahinter der Name.

Beide Dateien stammen aus unterschiedlichen Quellen und haben auch eine
völlig unterschiedliche Zeilenanzahl. In der zweiten Datei kommen die
Namen zudem natürlich öfter vor, da jeder Name mehrere Kurse belegt hat.

Was ich nun suche ist eine einfache Möglichkeit (awk, sed ...), um
folgendes Ergebnis zu bekommen:
Fach1;AL;meifri;hanmue;
Fach2;BE;meifri;schlie;

Es müsste also der Name aus file2.csv mit file1.csv eindeutig verglichen
und entsprechend mit dem Login aus file1 ersetzt werden. Danach müssten
aber zusàtzlich noch alle Zeilen mit Fach1 zu einer Zeile
zusammengefasst werden. Hoffe, dass es halbwegs verstàndlich war... wer
hat eine Idee, wie/womit das am elegantesten geht?
Danke,
Michael
 

Lesen sie die antworten

#1 Tim Landscheidt
02/12/2015 - 20:42 | Warnen spam
Michael Hagedorn wrote:

[…]

Es müsste also der Name aus file2.csv mit file1.csv eindeutig verglichen
und entsprechend mit dem Login aus file1 ersetzt werden. Danach müssten
aber zusàtzlich noch alle Zeilen mit Fach1 zu einer Zeile
zusammengefasst werden. Hoffe, dass es halbwegs verstàndlich war... wer
hat eine Idee, wie/womit das am elegantesten geht?



Perl/Python/etc. verfügen über gut abgehangene Bibliotheken,
um CSV-Daten zu verarbeiten. Welches Du davon verwendest,
ist eher eine Frage der persönlichen Pràferenz.

Tim

Ähnliche fragen