Preduvjeti:
Morate izraditi CSV datoteku prije vježbanja primjera iz ovog vodiča. Napravite CSV datoteku pod nazivom “customers.csv” sa sljedećim sadržajem da provjerite izlaz skripte koja se koristi u ovom vodiču. U ovoj datoteci, 3 rd polja 4 th linija i 6 th linija je prazna.
ID, ime, e-mail, adresa, mobitel101 , 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 = 'prazan' > , a > 10 Kadhalbagun Dhaka, + 8801512875634
105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Različiti načini čitanja CSV datoteke u Bashu
CSV datoteka može se analizirati na različite načine pomoću Bash skripte. U ovom dijelu vodiča prikazani su različiti načini čitanja datoteke 'customers.csv'.
Primjer 1: Pročitajte izvorni sadržaj CSV datoteke
Stvorite Bash datoteku sa sljedećom skriptom koja čita puni sadržaj datoteke 'customers.csv' pomoću petlje 'while':
#!/bin/bash
#Postavite naziv datoteke
naziv datoteke = 'customers.csv'
#Pročitajte svaki redak datoteke u svakoj iteraciji
dok čitati podaci
čini
#Ispiši liniju
jeka $podaci
učinjeno < $naziv datoteke
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz:
Primjer 2: Čitajte CSV datoteku velikim slovima u zaglavlju
Prvi redak datoteke 'customers.csv' sadrži naslov datoteke. Stvorite Bash datoteku sa sljedećom skriptom koja ispisuje sadržaj datoteke 'customers.csv' nakon pisanja velikih slova u prvom retku datoteke. Naredba “awk” koristi se u skripti za ispis sadržaja datoteke nakon pisanja zaglavlja velikim slovima. Zarez (,) je dodijeljen u FS i OFS vrijednostima u skripti za čitanje datoteke 'customers.csv' i pisanje datoteke 'updatedcustomers.csv'. Naredba “cat” koristi se za ispis sadržaja obje datoteke.
printf 'Izvorna datoteka: \n '#Ispiši izvorni sadržaj CSV datoteke
mačka cstomers.csv
#Stvorite novu CSV datoteku nakon pisanja velikih slova u zaglavlju
nezgodno 'POČETAK{FS=',';OFS=','}
{
ako(NR==1)
gornji dio s printom ($0)
drugo
ispisati
}' kupci.csv > ažurirani kupci.csv
printf ' \n Izmijenjena datoteka: \n '
#Ispiši novu CSV datoteku
mačka ažurirani kupci.csv
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz:
Primjer 3: Zamijenite prazno polje CSV datoteke s 'Ništa'
Stvorite Bash datoteku sa sljedećom skriptom koja ispisuje sadržaj datoteke 'customers.csv' nakon izmjene praznog polja s vrijednošću 'None'. Dva polja su prazna u ovoj datoteci koja su navedena u nastavku. Naredba “awk” koristi se u skripti za ispis sadržaja datoteke nakon izmjene praznih polja. Zarez (,) je dodijeljen u FS i OFS vrijednostima u skripti za čitanje datoteke 'customers.csv' i pisanje datoteke 'updatedcustomers.csv'. Naredba “cat” koristi se za ispis sadržaja obje datoteke u tabličnom formatu.
printf 'Izvorna datoteka: \n '#Ispiši izvorni sadržaj CSV datoteke u obliku tablice
mačka kupci.csv | stupac -s, -t
nezgodno 'POČETAK{FS=',';OFS=','}
{
za(polje=1;polje<=NF;polje++)
{
if($field == '') $field='Ništa'
}
ispisati
}' kupci.csv > modificiranikupci2.csv
printf ' \n Izmijenjena datoteka: \n '
#Ispišite novu CSV datoteku u obliku tablice
mačka modificiranikupci2.csv | stupac -s, -t
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz:
Primjer 4: Ispis ukupnog broja redaka i stupaca CSV datoteke
Stvorite Bash datoteku sa sljedećom skriptom koja broji ukupan broj redaka i stupaca u datoteci 'customers.csv'. Varijabla NR koristi se za ispis ukupnog broja redaka datoteke. Varijabla NF koristi se za ispis ukupnog broja polja datoteke.
printf 'Izvorna datoteka: \n '#Ispiši izvorni sadržaj CSV datoteke
mačka kupci.csv
jeka
jeka -n 'Ukupno redaka:'
nezgodno -F, 'END{print NR}' kupci.csv
jeka -n 'Ukupno stupaca:'
nezgodno -F, 'END{print NF}' kupci.csv
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Ukupan broj redaka u datoteci je 6, a ukupan broj polja u datoteci je 5 koja se ispisuju u izlazu:
Zaključak
Metode čitanja CSV datoteke, modificiranja CSV datoteke i brojanja redaka i stupaca CSV datoteke pomoću Bash skripte prikazane su u ovom vodiču.