Cara menyertai dan pelbagai lajur ke fail format CSV

Cara menyertai dan pelbagai lajur ke fail format CSV

Dalam contoh di bawah, anda boleh menemui beberapa petua mengenai cara menyertai lajur dari pelbagai fail ke fail nilai terpisah tunggal (CSV). Untuk membaca lajur membentuk pelbagai fail yang boleh kita gunakan tampal perintah. Pertimbangkan contoh berikut. Dalam direktori kotak pasir kami kami mempunyai 3 fail di mana masing -masing mengandungi satu lajur tarikh:

$ 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 

Seterusnya, kita boleh menyertai mereka bersama menggunakan tampal:

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

Secara lalai arahan tampal akan digunakan Tab untuk memisahkan semua lajur antara satu sama lain. Tingkah laku ini boleh ditimpa dengan menggunakan -d pilihan. Contohnya dan bukannya fail yang dibatasi tab kami membuat fail yang dibatasi koma:

$ Paste -D, F1 F2 F3 AZ, IU, QP DR, DR, DF QW, GG, RT, HH, ER, JJ ,, QQ ,, EE ,, UI, 

Ok, ini mudah. Tetapi bagaimana dengan menyertai lajur yang dipilih dari fail lajur berganda? Pertimbangkan yang berikut Tab Fail Kotak Hantar Hantar di mana setiap fail mengandungi lebih daripada satu lajur:

$ 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 st 

Menggunakan pes pada semua fail akan menyertai semua lajur ke dalam satu output:

$ 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 

Sebaik sahaja kita mempunyai output di atas yang boleh kita gunakan potong atau awk Perintah untuk memilih hanya lajur yang kami minati. Dalam contoh seterusnya kita akan menyertai detik dan ketiga dari a F4 fail, lajur pertama dari F5 fail dan lajur terakhir dari F6 dengan , Sebagai pembatas:

$ Paste F4 F5 F6 | awk 'bermula ofs = "," cetak $ 2, $ 3, $ 4, $ 8' Mn, qw, rk, wm ix, ao, lp, mq er, sy, wn, st 

Sila ambil perhatian bahawa anda boleh menentukan lajur output dalam sebarang pesanan jadi contohnya ini juga merupakan arahan yang sah:

$ Paste F4 F5 F6 | awk 'bermula ofs = "," cetak $ 4, $ 8, $ 2, $ 3' rk, wm, mn, qw lp, mq, ix, ao wn, st, er, s Sy 

Begitu juga a potong perintah dengan gabungan tr boleh digunakan untuk menyertai atau memisahkan pelbagai lajur membentuk fail CSV nilai CSV yang dipisahkan 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 

Perkara terakhir yang disebutkan ialah untuk menyimpan output CSV baru anda ke fail yang anda perlukan untuk menggunakan pengalihan untuk mengalihkannya ke fail baru. Contohnya kami membuat fail baru yang dipanggil mydata.CSV:

$ Paste F4 F5 F6 | tr '\ t ",' | cut -d, -f2,3,4,8> mydata.CSV 

Tutorial Linux Berkaitan:

  • Cara membaca dan membuat fail CSV menggunakan python
  • Cara menyambung ke pelayan FTP menggunakan python
  • Menguasai Gelung Skrip Bash
  • Contoh Petua dan Trik Perintah Bash Berguna - Bahagian 1
  • Pengenalan kepada Vagrant
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 3
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 2
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 4
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 5