
kann ich das mit einfachen Shell-Tools (ohne Python oder Perl) zum Laufen bringen?
EINGANG1:
file1.csv
John,Doe,[email protected]
Andy,Barry,[email protected]
Mary,,[email protected]
Zähle die Vorkommen von E-Mails aus der 3. Spalte, Datei1 in INPUT2:
file2.log
[email protected]&fghfgh
asdda&[email protected]
[email protected]&werewr
gewünschtes OUTPUT:
result.csv
John,Doe,[email protected],0
Andy,Barry,[email protected],2
Mary,,[email protected],1
vielen Dank!
Antwort1
Sie haben keine gültige Eingabe gemacht, deshalb habe ich Folgendes verwendet:
John,Doe,[email protected]
Andy,Barry,[email protected]
Mary,,[email protected]
Wofür der folgende Awk-Einzeiler die erwarteten Ergebnisse liefert:
awk -F, '{l[NR]=$0;f[NR]=$3;c[$3]++}END{for(i=1;i<=NR;i++)print l[i] "," c[f[i]]}'
Das Problem hier ist, dass Ihre Aufgabe entweder zwei Durchläufe erfordert. (f[] ist nur eine Vereinfachung, um zu vermeiden, dass der gesamte Inhalt analysiert wird, oder um ihn am Ende erneut zu analysieren.) Aber da ich nicht verstehe, warum Sie Python oder Perl ausgeschlossen haben (sieSindgrundlegende Shell-Tools), vielleicht halten Sie awk auch nicht für erlaubt ...