Lue CSV-tiedosto Bashissa

Lue Csv Tiedosto Bashissa



CSV:n täysi muoto on Comma Separated Value. Koodaaja käyttää CSV-tiedostoa moniin tarkoituksiin, jotka tallentavat tiedot puolirakenteiden taulukkomuodossa. Tiedoston jokaista riviä käsitellään taulukon rivinä ja jokainen rivin kenttä erotetaan CSV-tiedostossa pilkulla (,). Bashissa on monia tapoja lukea CSV-tiedostoja, jotka selitetään tässä opetusohjelmassa.

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

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