Cara bergabung dan beberapa kolom ke file format CSV

Cara bergabung dan beberapa kolom ke file format CSV

Dalam contoh di bawah ini Anda dapat menemukan beberapa tips tentang cara bergabung dengan kolom dari beberapa file ke satu file nilai terpisah koma (CSV). Untuk membaca kolom membentuk beberapa file yang dapat kita gunakan tempel memerintah. Pertimbangkan contoh berikut. Di direktori kotak pasir kami, kami memiliki 3 file di mana masing -masing berisi satu kolom tanggal:

$ ls f1 f2 f3 $ cat f1 az dr qw rt er $ cat f2 iu dr gg hh jj qq ee ui $ cat f3 qp df 

Selanjutnya, kita dapat bergabung dengan mereka bersama tempel:

$ paste f1 f2 f3 az iu qp dr df qw gg rt hh er jj qq ee ui 

Secara default perintah pasta akan digunakan Tab untuk memisahkan semua kolom dari satu sama lain. Perilaku ini dapat ditimpa dengan menggunakan -D pilihan. Misalnya alih -alih file Delimited tab Kami membuat file yang dibatasi koma:

$ pasta -d, f1 f2 f3 az, iu, qp dr, dr, df qw, gg, rt, hh, er, jj ,, qq ,, ee ,, ui, 

Oke, ini mudah. Tetapi bagaimana dengan bergabung dengan kolom yang dipilih dari beberapa file kolom? Pertimbangkan pengikut Tab Delimited mengirim file kotak di mana setiap file berisi lebih dari satu kolom:

$ ls f4 f5 f6 $ cat f4 qw mn qw ty ix ao pi er sy $ cat f5 rk wp lp cy wn em $ cat f6 tr er wm ut vb mq rp el st 

Menggunakan pasta pada semua file akan bergabung dengan semua kolom ke dalam output tunggal:

$ paste f4 f5 f6 qw mn qw rk wp tr er wm ty ix ao lp cy ut vb mq pi er sy wn em rp el st 

Setelah kami memiliki output di atas yang dapat kami gunakan memotong atau AWK Perintah untuk memilih hanya kolom yang kami minati. Dalam contoh berikutnya kita akan bergabung dengan yang kedua dan ketiga dari a f4 file, kolom pertama dari f5 file dan kolom terakhir dari f6 dengan , Sebagai pembatas:

$ paste f4 f5 f6 | awk 'begin ofs = "," print $ 2, $ 3, $ 4, $ 8' mn, qw, rk, wm ix, ao, lp, mq er, sy, wn, st, st 

Harap dicatat bahwa Anda dapat menentukan kolom output dalam urutan apa pun jadi misalnya ini juga merupakan perintah yang valid:

$ paste f4 f5 f6 | awk 'begin ofs = "," cetak $ 4, $ 8, $ 2, $ 3' rk, wm, mn, qw lp, mq, ix, ao wn, st, er, eh, sy, sy, sy 

Demikian pula a memotong Perintah dengan kombinasi tr dapat digunakan untuk bergabung atau memisahkan beberapa kolom bentuk koma nilai terpisah file csv atau stdin:

$ paste f4 f5 f6 | tr '\ t ",' | cut -d, -f2,3,4,8 mn, qw, rk, wm ix, ao, lp, mq er, sy, wn, st 

Hal terakhir yang disebutkan adalah bahwa untuk menyimpan output CSV baru Anda ke file yang perlu Anda gunakan pengalihan untuk mengarahkan kembali ke file baru. Misalnya kami membuat file baru yang dipanggil data saya.CSV:

$ paste f4 f5 f6 | tr '\ t ",' | cut -d, -f2,3,4,8> mydata.CSV 

Tutorial Linux Terkait:

  • Cara Membaca dan Membuat File CSV Menggunakan Python
  • Cara Terhubung ke Server FTP Menggunakan Python
  • Menguasai loop skrip bash
  • Contoh dan trik Contoh Tips Baris Bash Berguna - Bagian 1
  • Pengantar Vagrant
  • Contoh dan trik Contoh Tips Baris Bash Berguna - Bagian 3
  • Contoh dan trik Contoh Tips Baris Bash Berguna - Bagian 2
  • Contoh dan trik Contoh Tips Baris Bash Berguna - Bagian 4
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Contoh dan trik Contoh Tip Baris Bash Berguna - Bagian 5