GNU/Linux >> Linux Esercitazione >  >> Linux

Come unire due file CSV?

Usa csvkit:

csvjoin -c email id_email.csv email_name.csv

o

csvjoin -c 2,1 id_email.csv email_name.csv

Revisione 3 :

Devi ordinare alfabeticamente entrambi gli elenchi sulla posta elettronica, quindi unirti. Dato che il campo email è il 2° campo di file1 e il 1° campo di file2:

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

significato del parametro

-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

produce

email,ID,name
email,ID,name
...

ordinati per email in ordine alfabetico.

Tieni presente che se manca un'email da uno dei file, verrà omessa dai risultati.


Forse è eccessivo, ma potresti importare in un database (ad es. OpenOffice Base) come due tipi di tabelle e definire un report che è l'output desiderato.

Se l'importazione CSV è un problema, allora un programma per fogli di calcolo (ad esempio OpenOffice Calc) può eseguire l'importazione. Il risultato può quindi essere facilmente trasferito al database.


Linux
  1. Come unire due file di testo in Linux

  2. Come confrontare il contenuto di due tarball

  3. Come unire due file usando AWK?

  4. Come dividere i file CSV in base al numero di righe specificato?

  5. Come trovare/elencare tutti i file univoci in due directory?

Come visualizzare due file affiancati in Linux

Come confrontare due file nel terminale Linux

Come sincronizzare automaticamente i file tra due server Linux

Come trovare file in Debian

Come ripulire i file non necessari

Come posso vedere contemporaneamente due file tex in TeXstudio?