Forutsetninger:
Du må lage en CSV-fil før du øver på eksemplet med denne opplæringen. Lag en CSV-fil med navnet 'customers.csv' med følgende innhold for å sjekke utdataene til skriptet som brukes i denne opplæringen. I denne filen er 3 rd felt av 4 th linje og 6 th linjen er tomme.
ID, navn, e-post, adresse, mobil101 , 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 < en href = 'blank' > , en > 10 Kadhalbagun Dhaka, + 8801512875634
105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Ulike måter å lese CSV-filen i Bash
CSV-filen kan analyseres på forskjellige måter ved hjelp av et Bash-skript. Ulike måter å lese 'customers.csv'-filen på er vist i denne delen av opplæringen.
Eksempel 1: Les originalinnholdet i CSV-filen
Lag en Bash-fil med følgende skript som leser hele innholdet i 'customers.csv'-filen ved å bruke 'while'-løkken:
#!/bin/bash
#Angi filnavnet
filnavn = 'kunder.csv'
#Les hver linje i filen i hver iterasjon
samtidig som lese data
gjøre
#Skriv ut linjen
ekko $data
ferdig < $filnavn
Følgende utdata vises etter utføring av skriptet:
Eksempel 2: Les CSV-filen ved å bruke store bokstaver i overskriften
Den første linjen i filen 'customers.csv' inneholder overskriften til filen. Lag en Bash-fil med følgende skript som skriver ut innholdet i 'customers.csv'-filen etter at den første linjen i filen er skrevet med store bokstaver. Kommandoen 'awk' brukes i skriptet for å skrive ut innholdet i filen etter at overskriften er skrevet med stor bokstav. Kommaet(,) er tilordnet i FS- og OFS-verdiene i skriptet for å lese filen 'customers.csv' og skrive filen 'updatedcustomers.csv'. Kommandoen 'cat' brukes til å skrive ut innholdet i begge filene.
printf 'Original fil: \n '#Skriv ut det originale innholdet i CSV-filen
katt cstomers.csv
#Opprett en ny CSV-fil etter å ha brukt stor bokstav i overskriften
awk 'BEGIN{FS=',';OFS=','}
{
hvis(NR==1)
print topper ($0)
ellers
skrive ut
}' kunder.csv > oppdaterte kunder.csv
printf ' \n Endret fil: \n '
#Skriv ut den nye CSV-filen
katt oppdaterte kunder.csv
Følgende utdata vises etter utføring av skriptet:
Eksempel 3: Erstatt det tomme feltet i CSV-filen med 'Ingen'
Lag en Bash-fil med følgende skript som skriver ut innholdet i 'customers.csv'-filen etter å ha modifisert det tomme feltet med 'Ingen'-verdien. To felt er tomme i denne filen som er nevnt i det følgende. Kommandoen 'awk' brukes i skriptet for å skrive ut innholdet i filen etter å ha modifisert de tomme feltene. Kommaet(,) er tilordnet i FS- og OFS-verdiene i skriptet for å lese filen 'customers.csv' og skrive filen 'updatedcustomers.csv'. Kommandoen 'cat' brukes til å skrive ut innholdet i begge filene i tabellformat.
printf 'Original fil: \n '#Skriv ut det originale innholdet i CSV-filen i tabellform
katt kunder.csv | kolonne -s, -t
awk 'BEGIN{FS=',';OFS=','}
{
for(felt=1;felt<=NF;felt++)
{
if($field == '') $field='Ingen'
}
skrive ut
}' kunder.csv > modifiserte kunder2.csv
printf ' \n Endret fil: \n '
#Skriv ut den nye CSV-filen i tabellform
katt modifiserte kunder2.csv | kolonne -s, -t
Følgende utdata vises etter utføring av skriptet:
Eksempel 4: Skriv ut totalt antall rader og kolonner i CSV-filen
Lag en Bash-fil med følgende skript som teller det totale antallet rader og kolonner i 'customers.csv'-filen. NR-variabelen brukes til å skrive ut det totale antallet rader i filen. NF-variabelen brukes til å skrive ut det totale antallet felt i filen.
printf 'Original fil: \n '#Skriv ut det originale innholdet i CSV-filen
katt kunder.csv
ekko
ekko -n 'Totalt antall rader:'
awk -F, 'END{print NR}' kunder.csv
ekko -n 'Totalt kolonner:'
awk -F, 'END{print NF}' kunder.csv
Følgende utdata vises etter utføring av skriptet. Det totale antallet linjer i filen er 6 og det totale antallet felt i filen er 5 som skrives ut i utdataene:
Konklusjon
Metodene for å lese en CSV-fil, endre CSV-filen og telle rader og kolonner i CSV-filen ved hjelp av Bash-skriptet er vist i denne opplæringen.