Baca Fail CSV dalam Bash

Baca Fail Csv Dalam Bash



Bentuk penuh CSV ialah Nilai Dipisahkan Koma. Fail CSV digunakan oleh pengekod untuk banyak tujuan yang menyimpan data dalam format jadual separa struktur. Setiap baris fail dianggap sebagai baris jadual dan setiap medan baris dipisahkan dengan koma (,) dalam fail CSV. Banyak cara wujud dalam Bash untuk membaca fail CSV yang diterangkan dalam tutorial ini.

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 Alih

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