GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menggabungkan dua file CSV?

Gunakan csvkit:

csvjoin -c email id_email.csv email_name.csv

atau

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

Revisi3 :

Anda harus mengurutkan kedua daftar di email menurut abjad, lalu bergabung. Mengingat bahwa bidang email bidang ke-2 dari file1 dan bidang ke-1 dari 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

arti parameter

-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

menghasilkan

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

diurutkan menurut abjad email.

Perhatikan bahwa jika ada email yang hilang dari salah satu file, itu akan dihilangkan dari hasil.


Mungkin berlebihan, tetapi Anda dapat mengimpor ke database (mis. OpenOffice Base) sebagai dua jenis tabel dan menentukan laporan yang merupakan output yang diinginkan.

Jika impor CSV bermasalah, maka program spreadsheet (mis. OpenOffice Calc) dapat melakukan impor. Hasilnya kemudian dapat dengan mudah ditransfer ke database.


Linux
  1. Bagaimana membandingkan dua konten tarball

  2. Bagaimana cara menggabungkan dua file menggunakan AWK?

  3. cara menggabungkan dua file secara konsisten baris demi baris

  1. Bagaimana cara membagi file CSV sesuai jumlah baris yang ditentukan?

  2. Bagaimana saya bisa membedakan dua file XML?

  3. Bagaimana cara menggabungkan/menggabungkan banyak file mp3?

  1. Bagaimana menemukan / mendaftar semua file unik di dua direktori?

  2. Bagaimana menemukan file yang berisi dua string bersama di Linux?

  3. Bagaimana membedakan hanya baris pertama dari dua file?