Perskaitykite CSV failą Bash

Perskaitykite Csv Faila Bash



Visa CSV forma yra kableliais atskirta reikšmė. CSV failą kodavimo programa naudoja daugeliui tikslų, kurie saugo duomenis pusiau struktūrų lentelės formatu. Kiekviena failo eilutė traktuojama kaip lentelės eilutė, o kiekvienas eilutės laukas CSV faile atskiriamas kableliu (,). „Bash“ yra daug būdų, kaip skaityti CSV failus, kurie paaiškinti šiame vadove.

Būtinos sąlygos:

Prieš taikydami šios pamokos pavyzdį, turite sukurti CSV failą. Sukurkite CSV failą pavadinimu „customers.csv“ su tokiu turiniu, kad patikrintumėte šioje mokymo programoje naudojamo scenarijaus išvestį. Šiame faile 3 rd 4 laukai th eilutė ir 6 th eilutė tuščia.

ID, vardas, el. paštas, adresas, mobilusis

101 , Jafar Iqbal, Jafar @ gmail.com, 9 / A Dhanmondi Daka, + 8801762341425

102 , Kamal Hossain, Kamal @ gmail.com, 120 Mirpur Daka, 8801988675345

103 Nirobas Chowdhury 33 / 2 Džigatola Daka, 8801754532312

104 Farhenas Hasanas @ gmail.com < a href = 'tuščias' > , a > 10 Kadhalbagun Daka, + 8801512875634

105 , Md. Rahimas,, 2 / B Dhanmondi Daka, + 8801700453423

Įvairūs būdai, kaip skaityti CSV failą Bash

CSV failą galima analizuoti įvairiais būdais naudojant Bash scenarijų. Šioje mokymo programos dalyje pateikiami įvairūs failo „customers.csv“ skaitymo būdai.







1 pavyzdys: perskaitykite pradinį CSV failo turinį

Sukurkite „Bash“ failą su šiuo scenarijumi, kuris nuskaito visą „customers.csv“ failo turinį naudojant „while“ kilpą:



#!/bin/bash

#Nustatykite failo pavadinimą

failo pavadinimas = 'klientai.csv'

# Perskaitykite kiekvieną failo eilutę kiekvienoje iteracijoje

kol skaityti duomenis

daryti

#Atspausdinkite eilutę

aidas $duomenys

padaryta < $failo pavadinimas

Įvykdžius scenarijų pasirodo ši išvestis:







2 pavyzdys: perskaitykite CSV failą rašydami antraštę didžiosiomis raidėmis

Pirmoje „customers.csv“ failo eilutėje yra failo antraštė. Sukurkite „Bash“ failą naudodami šį scenarijų, kuris išspausdina „customers.csv“ failo turinį po to, kai pirmoje failo eilutėje rašoma didžiosiomis raidėmis. Komanda „awk“ naudojama scenarijuje, norint išspausdinti failo turinį po to, kai antraštė yra didžioji. Kablelis (,) priskiriamas scenarijaus FS ir OFS reikšmėse, kad būtų galima nuskaityti „customers.csv“ failą ir parašyti „updatedcustomers.csv“ failą. Komanda „katė“ naudojama abiejų failų turiniui spausdinti.

printf 'Originalus failas: \n

#Atspausdinkite originalų CSV failo turinį

katė cstomers.csv

#Sukurkite naują CSV failą, parašę antraštę didžiosiomis raidėmis

awk 'START{FS=',';OFS=','}

{

jei(NR==1)

spausdinimo viršelis ($0)

Kitas

spausdinti

}'
klientai.csv > updatedcustomers.csv

printf \n Pakeistas failas: \n

#Spausdinkite naują CSV failą

katė updatedcustomers.csv

Įvykdžius scenarijų pasirodo ši išvestis:



3 pavyzdys: tuščią CSV failo lauką pakeiskite į „Nėra“

Sukurkite „Bash“ failą su šiuo scenarijumi, kuris išspausdina „customers.csv“ failo turinį, pakeitus tuščią lauką su „Nėra“ reikšme. Du šio failo laukai yra tušti, kurie paminėti toliau. Komanda „awk“ naudojama scenarijuje, norint išspausdinti failo turinį, pakeitus tuščius laukus. Kablelis (,) priskiriamas scenarijaus FS ir OFS reikšmėse, kad būtų galima nuskaityti „customers.csv“ failą ir parašyti „updatedcustomers.csv“ failą. Komanda „katė“ naudojama abiejų failų turiniui spausdinti lentelės formatu.

printf 'Originalus failas: \n

#Spausdinkite pradinį CSV failo turinį lentelės forma

katė klientai.csv | stulpelis -s, -t

awk 'START{FS=',';OFS=','}

{

for(laukas=1;laukas<=NF;laukas++)

{

if($field == '') $field='Nėra'

}

spausdinti

}'
klientai.csv > modifiedcustomers2.csv

printf \n Pakeistas failas: \n

#Spausdinkite naują CSV failą lentelės forma

katė modifiedcustomers2.csv | stulpelis -s, -t

Įvykdžius scenarijų pasirodo ši išvestis:

4 pavyzdys: išspausdinkite bendrą CSV failo eilučių ir stulpelių skaičių

Sukurkite „Bash“ failą naudodami šį scenarijų, kuris skaičiuoja bendrą „customers.csv“ failo eilučių ir stulpelių skaičių. NR kintamasis naudojamas bendram failo eilučių skaičiui spausdinti. NF kintamasis naudojamas bendram failo laukų skaičiui spausdinti.

printf 'Originalus failas: \n

#Atspausdinkite originalų CSV failo turinį

katė klientai.csv

aidas

aidas -n 'Iš viso eilučių:'

awk -F, „BAIGTI{spausdinti NR}“ klientai.csv

aidas -n „Iš viso stulpelių:“

awk -F, „BAIGTI{spausdinti NF}“ klientai.csv

Įvykdžius scenarijų pasirodo ši išvestis. Iš viso faile yra 6 eilutės, o failo laukeliai yra 5, kurie atspausdinami išvestyje:

Išvada

CSV failo skaitymo, CSV failo modifikavimo ir CSV failo eilučių bei stulpelių skaičiavimo naudojant Bash scenarijų metodai yra parodyti šioje pamokoje.