Pročitajte CSV datoteku u Bashu

Procitajte Csv Datoteku U Bashu



Puni oblik CSV-a je vrijednost odvojena zarezima. CSV datoteku koristi koder u mnoge svrhe koje pohranjuju podatke u polustrukturiranom tabličnom formatu. Svaki redak datoteke tretira se kao redak tablice i svako polje retka je odvojeno zarezom (,) u CSV datoteci. U Bashu postoji mnogo načina za čitanje CSV datoteka koji su objašnjeni u ovom vodiču.

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, mobitel

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 = '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.