GNU/Linux >> Tutoriels Linux >  >> Linux

Comment joindre deux fichiers CSV ?

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.


Linux
  1. Comment comparer le contenu de deux archives tar

  2. Comment fusionner deux fichiers avec AWK ?

  3. comment fusionner deux fichiers de manière cohérente ligne par ligne

  4. Comment puis-je différencier deux fichiers XML ?

  5. Comment joindre/fusionner plusieurs fichiers mp3 ?

Comment afficher deux fichiers côte à côte sous Linux

Comment comparer deux fichiers dans un terminal Linux

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

Comment trouver des fichiers dans Debian

Comment nettoyer les fichiers inutiles

Comment puis-je voir simultanément deux fichiers tex dans TeXstudio?