Lugege CSV-faili Bashis

Lugege Csv Faili Bashis



CSV täisvorm on komadega eraldatud väärtus. Kodeerija kasutab CSV-faili paljudel eesmärkidel, mis salvestavad andmed poolstruktuuride tabelivormingus. Faili iga rida käsitletakse tabeli reana ja CSV-failis eraldatakse iga rea ​​väli komaga (,). Bashis on CSV-failide lugemiseks palju võimalusi, mida selles õpetuses selgitatakse.

Eeltingimused:

Enne selle õpetuse näite kasutamist peate looma CSV-faili. Selles õpetuses kasutatud skripti väljundi kontrollimiseks looge järgmise sisuga CSV-fail nimega „customers.csv”. Selles failis on 3 rd väljad 4 th rida ja 6 th rida on tühjad.

ID, nimi, e-post, aadress, mobiil

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 = 'tühi' > , a > 10 Kadhalbagun Dhaka, + 8801512875634

105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423

Erinevad viisid CSV-faili lugemiseks Bashis

CSV-faili saab Bashi skripti abil sõeluda erineval viisil. Selles õpetuse osas kuvatakse erinevad viisid faili „customers.csv” lugemiseks.







Näide 1: lugege CSV-faili algset sisu

Looge Bashi fail järgmise skriptiga, mis loeb faili 'customers.csv' kogu sisu, kasutades tsüklit 'while'.



#!/bin/bash

# Määrake failinimi

faili nimi = 'kliendid.csv'

# Lugege iga iteratsiooni faili iga rida

samal ajal lugeda andmeid

teha

#Prindi rida

kaja $andmed

tehtud < $ failinimi

Pärast skripti käivitamist kuvatakse järgmine väljund:







Näide 2: lugege CSV-faili päises suurtähtedega kirjutades

Faili “customers.csv” esimene rida sisaldab faili päist. Looge järgmise skriptiga Bash-fail, mis prindib faili „customers.csv” sisu pärast faili esimese rea suurtähtede kirjutamist. Käsku 'awk' kasutatakse skriptis faili sisu printimiseks pärast päise suurtähtede kirjutamist. Skripti FS-i ja OFS-i väärtustes on koma(,) määratud faili „customers.csv” lugemiseks ja faili „updatedcustomers.csv” kirjutamiseks. Mõlema faili sisu printimiseks kasutatakse käsku 'cat'.

printf 'Originaalfail: \n '

#Prindige CSV-faili algne sisu

kass cstomers.csv

#Looge pärast päise suurtähtede kirjutamist uus CSV-fail

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

{

kui(NR==1)

prindi kate ($0)

muidu

printida

}'
kliendid.csv > updatedcustomers.csv

printf ' \n Muudetud fail: \n '

#Prindige uus CSV-fail

kass updatedcustomers.csv

Pärast skripti käivitamist kuvatakse järgmine väljund:



Näide 3: asendage CSV-faili tühi väli tekstiga 'Puudub'

Looge Bash-fail järgmise skriptiga, mis prindib faili 'customers.csv' sisu pärast tühja välja muutmist väärtusega 'Puudub'. Selles failis on tühjad kaks välja, mida mainitakse järgmises. Käsku “awk” kasutatakse skriptis faili sisu printimiseks pärast tühjade väljade muutmist. Skripti FS-i ja OFS-i väärtustes on koma(,) määratud faili „customers.csv” lugemiseks ja faili „updatedcustomers.csv” kirjutamiseks. Käsku 'cat' kasutatakse mõlema faili sisu printimiseks tabelivormingus.

printf 'Originaalfail: \n '

#Prindige CSV-faili algne sisu tabelina

kass kliendid.csv | veerg -s, -t

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

{

for(väli=1;väli<=NF;väli++)

{

if($field == '') $field='Puudub'

}

printida

}'
kliendid.csv > modifiedcustomers2.csv

printf ' \n Muudetud fail: \n '

#Prindige uus CSV-fail tabelina

kass modifiedcustomers2.csv | veerg -s, -t

Pärast skripti käivitamist kuvatakse järgmine väljund:

Näide 4: printige CSV-faili ridade ja veergude koguarv

Looge Bashi fail järgmise skriptiga, mis loendab ridade ja veergude koguarvu failis „customers.csv”. Muutujat NR kasutatakse faili ridade koguarvu printimiseks. NF muutujat kasutatakse faili väljade koguarvu printimiseks.

printf 'Originaalfail: \n '

#Prindige CSV-faili algne sisu

kass kliendid.csv

kaja

kaja -n 'Ridasid kokku:'

awk -F, 'END{print NR}' kliendid.csv

kaja -n 'Veerud kokku:'

awk -F, 'END{print NF}' kliendid.csv

Pärast skripti täitmist ilmub järgmine väljund. Faili ridade koguarv on 6 ja faili väljade koguarv on 5, mis trükitakse väljundisse:

Järeldus

Selles õpetuses kuvatakse meetodid CSV-faili lugemiseks, CSV-faili muutmiseks ning CSV-faili ridade ja veergude loendamiseks Bashi skripti abil.