Les CSV-filen i Bash

Les Csv Filen I Bash



Den fullstendige formen for CSV er kommaseparert verdi. CSV-filen brukes av koderen til mange formål som lagrer dataene i semistrukturert tabellformat. Hver linje i filen behandles som en rad i tabellen, og hvert felt i raden er atskilt med komma (,) i CSV-filen. Det finnes mange måter i Bash for å lese CSV-filene som er forklart i denne opplæringen.

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, mobil

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