Lasiet CSV failu programmā Bash

Lasiet Csv Failu Programma Bash



Pilna CSV forma ir komatatdalītā vērtība. CSV failu kodētājs izmanto daudziem mērķiem, kas glabā datus daļēji struktūru tabulas formātā. Katra faila rinda tiek uzskatīta par tabulas rindu, un katrs rindas lauks ir atdalīts ar komatu (,) CSV failā. Programmā Bash ir daudz veidu, kā lasīt CSV failus, kas ir izskaidroti šajā apmācībā.

Priekšnosacījumi:

Pirms šīs apmācības piemēra izmantošanas jums ir jāizveido CSV fails. Izveidojiet CSV failu ar nosaukumu “customers.csv” ar šādu saturu, lai pārbaudītu šajā apmācībā izmantotā skripta izvadi. Šajā failā 3 rd 4. lauki th līnija un 6 th rinda ir tukša.

ID, vārds, e-pasts, adrese, mobilais

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

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

103 Nirobs Čodhurijs 33 / 2 Džigatola Daka, 8801754532312

104 Fārīns Hasans @ gmail.com < a href = 'tukšs' > , a > 10 Kadhalbagun Daka, + 8801512875634

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

Dažādi veidi, kā lasīt CSV failu programmā Bash

CSV failu var parsēt dažādos veidos, izmantojot Bash skriptu. Šajā apmācības daļā ir parādīti dažādi veidi, kā lasīt failu “customers.csv”.







1. piemērs. Izlasiet CSV faila sākotnējo saturu

Izveidojiet Bash failu ar šādu skriptu, kas nolasa visu faila “customers.csv” saturu, izmantojot cilpu “while”.



#!/bin/bash

#Iestatiet faila nosaukumu

faila nosaukums = 'klienti.csv'

#Izlasiet katru faila rindiņu katrā iterācijā

kamēr lasīt datus

darīt

#Izdrukājiet līniju

atbalss $dati

darīts < $faila nosaukums

Pēc skripta izpildes tiek parādīta šāda izvade:







2. piemērs. Izlasiet CSV failu, rakstot galveni ar lielo burtu

Faila “customers.csv” pirmajā rindā ir faila virsraksts. Izveidojiet Bash failu ar šādu skriptu, kas izdrukā faila “customers.csv” saturu pēc tam, kad faila pirmajā rindiņā ir ievadīts lielais burts. Komanda “awk” tiek izmantota skriptā, lai izdrukātu faila saturu pēc lielo burtu ievadīšanas galvenē. Skripta FS un OFS vērtībās tiek piešķirts komats (,), lai lasītu failu “customers.csv” un rakstītu failu “updatedcustomers.csv”. Komanda “cat” tiek izmantota, lai izdrukātu abu failu saturu.

printf 'Oriģinālais fails: \n '

#Izdrukājiet CSV faila sākotnējo saturu

kaķis cstomers.csv

#Izveidojiet jaunu CSV failu pēc lielo burtu ievadīšanas galvenē

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

{

ja(NR==1)

drukas virsma ($0)

cits

drukāt

}'
klientiem.csv > updatedcustomers.csv

printf ' \n Modificēts fails: \n '

#Izdrukājiet jauno CSV failu

kaķis updatedcustomers.csv

Pēc skripta izpildes tiek parādīta šāda izvade:



3. piemērs: CSV faila tukšo lauku aizstājiet ar “Nav”.

Izveidojiet Bash failu ar šādu skriptu, kas izdrukā faila “customers.csv” saturu pēc tukšā lauka pārveidošanas ar vērtību “Nav”. Šajā failā ir tukši divi lauki, kas minēti tālāk. Komanda “awk” tiek izmantota skriptā, lai pēc tukšo lauku modificēšanas izdrukātu faila saturu. Skripta FS un OFS vērtībās tiek piešķirts komats (,), lai lasītu failu “customers.csv” un rakstītu failu “updatedcustomers.csv”. Komanda “cat” tiek izmantota, lai drukātu abu failu saturu tabulas formātā.

printf 'Oriģinālais fails: \n '

#Izdrukājiet CSV faila sākotnējo saturu tabulas veidā

kaķis klientiem.csv | kolonna -s, -t

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

{

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

{

if($field == '') $field='Nav'

}

drukāt

}'
klientiem.csv > modificētie klienti2.csv

printf ' \n Modificēts fails: \n '

#Izdrukājiet jauno CSV failu tabulas veidā

kaķis modificētie klienti2.csv | kolonna -s, -t

Pēc skripta izpildes tiek parādīta šāda izvade:

4. piemērs. Izdrukājiet CSV faila kopējo rindu un kolonnu skaitu

Izveidojiet Bash failu ar šādu skriptu, kas saskaita kopējo rindu un kolonnu skaitu failā “customers.csv”. Mainīgais NR tiek izmantots, lai drukātu kopējo faila rindu skaitu. NF mainīgais tiek izmantots, lai drukātu kopējo faila lauku skaitu.

printf 'Oriģinālais fails: \n '

#Izdrukājiet CSV faila sākotnējo saturu

kaķis klientiem.csv

atbalss

atbalss -n 'Kopā rindas:'

awk -F, BEIGAS{print NR} klientiem.csv

atbalss -n 'Kopā kolonnas:'

awk -F, BEIGAS{print NF} klientiem.csv

Pēc skripta izpildes tiek parādīta šāda izvade. Kopējais faila rindiņu skaits ir 6 un faila lauki ir 5, kas tiek izdrukāti izvadē:

Secinājums

Šajā apmācībā ir parādītas metodes CSV faila lasīšanai, CSV faila modificēšanai un CSV faila rindu un kolonnu skaitīšanai, izmantojot Bash skriptu.