Utilisez csvkit :
csvjoin -c email id_email.csv email_name.csv
ou
csvjoin -c 2,1 id_email.csv email_name.csv
Révision3 :
Vous devez trier les deux listes par e-mail par ordre alphabétique, puis les rejoindre. Sachant que le champ email le 2ème champ du fichier1 et le 1er champ du fichier2 :
sort -t , -k 2,2 file1.csv > sort1.csv
sort -t , -k 1,1 file2.csv > sort2.csv
join -t , -1 2 -2 1 sort1.csv sort2.csv > sort3.csv
signification du paramètre
-t , : ',' is the field separator -k 2,2 : character sort on 2nd field -k 1,1 : character sort on 1st field -1 2 : file 1, 2nd field -2 1 : file 2, 1st field > : output to file
produit
email,ID,name email,ID,name ...
triés par e-mail par ordre alphabétique.
Notez que s'il manque un e-mail dans l'un ou l'autre des fichiers, il sera omis des résultats.
C'est peut-être exagéré, mais vous pouvez importer dans une base de données (par exemple OpenOffice Base) sous la forme de deux types de tables et définir un rapport correspondant à la sortie souhaitée.
Si l'importation CSV pose problème, un tableur (par exemple, OpenOffice Calc) peut effectuer l'importation. Le résultat peut ensuite être facilement transféré dans la base de données.