GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo unir dos archivos CSV?

Usar csvkit:

csvjoin -c email id_email.csv email_name.csv

o

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

Revisión 3 :

Debe ordenar alfabéticamente ambas listas en el correo electrónico y luego unirse. Dado que el campo de correo electrónico es el segundo campo del archivo1 y el primer campo del archivo2:

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

significado del parámetro

-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
...

ordenados por correo electrónico alfabéticamente.

Tenga en cuenta que si falta algún correo electrónico en cualquiera de los archivos, se omitirá de los resultados.


Tal vez sea excesivo, pero podría importar a una base de datos (por ejemplo, OpenOffice Base) como dos tipos de tablas y definir un informe que sea el resultado deseado.

Si la importación de CSV es un problema, entonces un programa de hoja de cálculo (por ejemplo, OpenOffice Calc) puede realizar la importación. El resultado se puede transferir fácilmente a la base de datos.


Linux
  1. Cómo unir dos archivos de texto en Linux

  2. cómo fusionar dos archivos consistentemente línea por línea

  3. ¿Cómo puedo diferenciar dos archivos XML?

  4. ¿Cómo unir/combinar muchos archivos mp3?

  5. ¿Cómo diferenciar solo la primera línea de dos archivos?

Cómo mostrar dos archivos uno al lado del otro en Linux

Cómo comparar dos archivos en la terminal de Linux

Cómo Rsync archivos entre dos servidores Linux automáticamente

Cómo encontrar archivos en Debian

Cómo limpiar archivos innecesarios

¿Cómo puedo ver dos archivos tex en TeXstudio simultáneamente?