Edellytykset:
Sinun on luotava CSV-tiedosto ennen kuin harjoittelet tämän opetusohjelman esimerkkiä. Luo CSV-tiedosto nimeltä 'customers.csv', jossa on seuraava sisältö, jotta voit tarkistaa tässä opetusohjelmassa käytetyn komentosarjan tulosteen. Tässä tiedostossa 3 rd 4:n kentät th rivi ja 6 th rivi on tyhjä.
Tunnus, nimi, sähköpostiosoite, osoite, matkapuhelin101 , 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 = 'tyhjä' > , a > 10 Kadhalbagun Dhaka, + 8801512875634
105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Eri tapoja lukea CSV-tiedosto Bashissa
CSV-tiedosto voidaan jäsentää eri tavoin käyttämällä Bash-komentosarjaa. Tässä opetusohjelman osassa esitetään erilaisia tapoja lukea 'customers.csv'-tiedosto.
Esimerkki 1: Lue CSV-tiedoston alkuperäinen sisältö
Luo Bash-tiedosto seuraavalla komentosarjalla, joka lukee 'customers.csv'-tiedoston koko sisällön 'while'-silmukan avulla:
#!/bin/bash
#Aseta tiedostonimi
Tiedoston nimi = 'asiakkaat.csv'
#Lue tiedoston jokainen rivi jokaisessa iteraatiossa
sillä aikaa lukea tiedot
tehdä
#Tulosta viiva
kaiku $data
tehty < $tiedostonimi
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:
Esimerkki 2: Lue CSV-tiedosto kirjoittamalla otsikko isoilla kirjaimilla
'Customers.csv'-tiedoston ensimmäinen rivi sisältää tiedoston otsikon. Luo Bash-tiedosto seuraavalla komentosarjalla, joka tulostaa 'customers.csv'-tiedoston sisällön sen jälkeen, kun tiedoston ensimmäinen rivi on kirjoitettu isoilla kirjaimilla. 'awk'-komentoa käytetään komentosarjassa tiedoston sisällön tulostamiseen otsikon kirjoittamisen jälkeen. Pilkku(,) on määritetty komentosarjan FS- ja OFS-arvoissa 'customers.csv'-tiedoston lukemiseksi ja 'updatedcustomers.csv'-tiedoston kirjoittamiseksi. 'Cat'-komentoa käytetään molempien tiedostojen sisällön tulostamiseen.
printf 'Alkuperäinen tiedosto: \n '#Tulosta CSV-tiedoston alkuperäinen sisältö
kissa cstomers.csv
#Luo uusi CSV-tiedosto otsikon kirjoittamisen jälkeen
awk 'ALUE{FS=',';OFS=','}
{
jos(NR==1)
painatuspäällinen (0 dollaria)
muu
Tulosta
}' asiakkaat.csv > updatedcustomers.csv
printf ' \n Muokattu tiedosto: \n '
#Tulosta uusi CSV-tiedosto
kissa updatedcustomers.csv
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:
Esimerkki 3: Korvaa CSV-tiedoston tyhjä kenttä tekstillä 'Ei mitään'
Luo Bash-tiedosto seuraavalla komentosarjalla, joka tulostaa 'customers.csv'-tiedoston sisällön sen jälkeen, kun olet muokannut tyhjää kenttää arvolla 'Ei mitään'. Tässä tiedostossa on kaksi tyhjää kenttää, jotka mainitaan seuraavassa. Komentosarjassa 'awk'-komentoa käytetään tiedoston sisällön tulostamiseen tyhjien kenttien muokkauksen jälkeen. Pilkku(,) on määritetty komentosarjan FS- ja OFS-arvoissa 'customers.csv'-tiedoston lukemiseksi ja 'updatedcustomers.csv'-tiedoston kirjoittamiseksi. 'Cat'-komentoa käytetään tulostamaan molempien tiedostojen sisältö taulukkomuodossa.
printf 'Alkuperäinen tiedosto: \n '#Tulosta CSV-tiedoston alkuperäinen sisältö taulukkomuodossa
kissa asiakkaat.csv | sarake -s, -t
awk 'ALUE{FS=',';OFS=','}
{
for(field=1;field<=NF;field++)
{
if($field == '') $field='Ei mitään'
}
Tulosta
}' asiakkaat.csv > modifiedcustomers2.csv
printf ' \n Muokattu tiedosto: \n '
#Tulosta uusi CSV-tiedosto taulukkomuodossa
kissa modifiedcustomers2.csv | sarake -s, -t
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:
Esimerkki 4: Tulosta CSV-tiedoston rivien ja sarakkeiden kokonaismäärä
Luo Bash-tiedosto seuraavalla komentosarjalla, joka laskee 'customers.csv'-tiedoston rivien ja sarakkeiden kokonaismäärän. NR-muuttujaa käytetään tulostamaan tiedoston rivien kokonaismäärä. NF-muuttujaa käytetään tulostamaan tiedoston kenttien kokonaismäärä.
printf 'Alkuperäinen tiedosto: \n '#Tulosta CSV-tiedoston alkuperäinen sisältö
kissa asiakkaat.csv
kaiku
kaiku -n 'Rivejä yhteensä:'
awk -F, 'END{print NR}' asiakkaat.csv
kaiku -n 'Sarakkeita yhteensä:'
awk -F, 'END{print NF}' asiakkaat.csv
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Tiedoston rivien kokonaismäärä on 6 ja tiedoston kenttiä yhteensä 5, jotka tulostetaan tulosteeseen:
Johtopäätös
Tässä opetusohjelmassa esitetään menetelmät CSV-tiedoston lukemiseen, CSV-tiedoston muokkaamiseen ja CSV-tiedoston rivien ja sarakkeiden laskemiseen Bash-komentosarjan avulla.