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, mobilais101 , 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.