Prasyarat:
Anda perlu mencipta fail CSV sebelum mempraktikkan contoh tutorial ini. Buat fail CSV bernama 'customers.csv' dengan kandungan berikut untuk menyemak output skrip yang digunakan dalam tutorial ini. Dalam fail ini, 3 rd bidang 4 ke baris dan 6 ke barisan kosong.
ID, Nama, E-mel, Alamat, Mudah Alih101 , Jafar Iqbal, Jafar @ gmail.com, 9 / A Dhanmondi Dhaka, + 8801762341425
102 , Kamal Hossain, Kamal @ gmail.com, 120 Mirpur Dhaka, 8801988675345
103 Nirob Chowdhury 33 / 2 Jigatola Dhaka, 8801754532312
104 Farheen Hasan @ gmail.com < a href = 'kosong' > , a > 10 Kadhalbagun Dhaka, + 8801512875634
105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Cara Berbeza untuk Membaca Fail CSV dalam Bash
Fail CSV boleh dihuraikan dengan cara yang berbeza menggunakan skrip Bash. Cara yang berbeza untuk membaca fail 'customers.csv' ditunjukkan dalam bahagian tutorial ini.
Contoh 1: Baca Kandungan Asal Fail CSV
Buat fail Bash dengan skrip berikut yang membaca kandungan penuh fail 'customers.csv' menggunakan gelung 'while':
#!/bin/bash
#Tetapkan nama fail
nama fail = 'customer.csv'
#Baca setiap baris fail dalam setiap lelaran
sementara membaca data
buat
#Cetak garisan
bergema $data
selesai < $nama fail
Output berikut muncul selepas melaksanakan skrip:
Contoh 2: Baca Fail CSV dengan Menggunakan Huruf Besar pada Pengepala
Baris pertama fail 'customers.csv' mengandungi tajuk fail. Buat fail Bash dengan skrip berikut yang mencetak kandungan fail 'customers.csv' selepas menggunakan huruf besar pada baris pertama fail. Perintah 'awk' digunakan dalam skrip untuk mencetak kandungan fail selepas menggunakan huruf besar pada pengepala. Koma(,) diberikan dalam nilai FS dan OFS dalam skrip untuk membaca fail 'customers.csv' dan menulis fail 'updatedcustomers.csv'. Perintah 'kucing' digunakan untuk mencetak kandungan kedua-dua fail.
printf 'Fail Asal: \n '#Cetak kandungan asal fail CSV
kucing cstomers.csv
#Buat fail CSV baharu selepas menggunakan huruf besar pada pengepala
awk 'BERMULA{FS=',';OFS=','}
{
jika(NR==1)
topper cetakan($0)
lain
cetak
}' pelanggan.csv > updatedcustomers.csv
printf ' \n Fail yang Diubah Suai: \n '
#Cetak fail CSV baharu
kucing updatedcustomers.csv
Output berikut muncul selepas melaksanakan skrip:
Contoh 3: Gantikan Medan Kosong Fail CSV dengan 'Tiada'
Cipta fail Bash dengan skrip berikut yang mencetak kandungan fail 'customers.csv' selepas mengubah suai medan kosong dengan nilai 'Tiada'. Dua medan kosong dalam fail ini yang disebut dalam perkara berikut. Perintah 'awk' digunakan dalam skrip untuk mencetak kandungan fail selepas mengubah suai medan kosong. Koma(,) diberikan dalam nilai FS dan OFS dalam skrip untuk membaca fail 'customers.csv' dan menulis fail 'updatedcustomers.csv'. Perintah 'kucing' digunakan untuk mencetak kandungan kedua-dua fail dalam format jadual.
printf 'Fail Asal: \n '#Cetak kandungan asal fail CSV dalam bentuk jadual
kucing pelanggan.csv | lajur -s, -t
awk 'BERMULA{FS=',';OFS=','}
{
untuk(medan=1;medan<=NF;medan++)
{
if($field == '') $field='None'
}
cetak
}' pelanggan.csv > pelanggan yang diubah suai2.csv
printf ' \n Fail yang Diubah Suai: \n '
#Cetak fail CSV baharu dalam bentuk jadual
kucing pelanggan yang diubah suai2.csv | lajur -s, -t
Output berikut muncul selepas melaksanakan skrip:
Contoh 4: Cetak Jumlah Bilangan Baris dan Lajur Fail CSV
Buat fail Bash dengan skrip berikut yang mengira jumlah bilangan baris dan lajur dalam fail 'customers.csv'. Pembolehubah NR digunakan untuk mencetak jumlah bilangan baris fail. Pembolehubah NF digunakan untuk mencetak jumlah bilangan medan fail.
printf 'Fail Asal: \n '#Cetak kandungan asal fail CSV
kucing pelanggan.csv
bergema
bergema -n 'Jumlah baris:'
awk -F, 'TAMAT{cetak NR}' pelanggan.csv
bergema -n 'Jumlah lajur:'
awk -F, 'TAMAT{cetak NF}' pelanggan.csv
Output berikut muncul selepas melaksanakan skrip. Jumlah baris dalam fail ialah 6 dan jumlah medan fail ialah 5 yang dicetak dalam output:
Kesimpulan
Kaedah membaca fail CSV, mengubah suai fail CSV dan mengira baris dan lajur fail CSV menggunakan skrip Bash ditunjukkan dalam tutorial ini.