Læs CSV-filen i Bash

Laes Csv Filen I Bash



Den fulde form for CSV er kommasepareret værdi. CSV-filen bruges af koderen til mange formål, der gemmer dataene i semi-strukturer tabelformat. Hver linje i filen behandles som en række i tabellen, og hvert felt i rækken er adskilt af et komma (,) i CSV-filen. Der findes mange måder i Bash at læse CSV-filerne, som er forklaret i denne tutorial.

Forudsætninger:

Du skal oprette en CSV-fil, før du øver dig på eksemplet med denne øvelse. Opret en CSV-fil med navnet 'customers.csv' med følgende indhold for at kontrollere outputtet af scriptet, der bruges i denne øvelse. I denne fil, den 3 rd felter af de 4 th linje og 6 th linje er tomme.

ID, navn, e-mail, 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

Forskellige måder at læse CSV-filen på i Bash

CSV-filen kan parses på forskellige måder ved hjælp af et Bash-script. Forskellige måder at læse filen 'customers.csv' på er vist i denne del af selvstudiet.







Eksempel 1: Læs det originale indhold af CSV-filen

Opret en Bash-fil med følgende script, der læser det fulde indhold af filen 'customers.csv' ved hjælp af 'while'-løkken:



#!/bin/bash

#Indstil filnavnet

filnavn = 'kunder.csv'

#Læs hver linje i filen i hver iteration

mens Læs data

gør

#Udskriv linjen

ekko $data

Færdig < $filnavn

Følgende output vises efter eksekvering af scriptet:







Eksempel 2: Læs CSV-filen ved at skrive overskriften med stort

Den første linje i filen 'customers.csv' indeholder overskriften på filen. Opret en Bash-fil med følgende script, der udskriver indholdet af 'customers.csv'-filen efter at have brugt den første linje i filen med stort. Kommandoen 'awk' bruges i scriptet til at udskrive indholdet af filen efter at have skrevet overskriften med stort. Kommaet(,) er tildelt i FS- og OFS-værdierne i scriptet til at læse filen 'customers.csv' og skrive filen 'updatedcustomers.csv'. Kommandoen 'cat' bruges til at udskrive indholdet af begge filer.

printf 'Original fil: \n '

#Udskriv det originale indhold af CSV-filen

kat cstomers.csv

#Opret en ny CSV-fil efter at have skrevet overskriften med stort

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

{

hvis(NR==1)

print top ($0)

andet

Print

}'
kunder.csv > opdaterede kunder.csv

printf ' \n Ændret fil: \n '

#Udskriv den nye CSV-fil

kat opdaterede kunder.csv

Følgende output vises efter eksekvering af scriptet:



Eksempel 3: Erstat det tomme felt i CSV-filen med 'Ingen'

Opret en Bash-fil med følgende script, der udskriver indholdet af filen 'customers.csv' efter at have ændret det tomme felt med værdien 'Ingen'. To felter er tomme i denne fil, som er nævnt i det følgende. Kommandoen 'awk' bruges i scriptet til at udskrive indholdet af filen efter at have ændret de tomme felter. Kommaet(,) er tildelt i FS- og OFS-værdierne i scriptet til at læse filen 'customers.csv' og skrive filen 'updatedcustomers.csv'. Kommandoen 'cat' bruges til at udskrive indholdet af begge filer i tabelformat.

printf 'Original fil: \n '

#Udskriv det originale indhold af CSV-filen i tabelform

kat kunder.csv | kolonne -s, -t

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

{

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

{

if($field == '') $field='Ingen'

}

Print

}'
kunder.csv > modifiedcustomers2.csv

printf ' \n Ændret fil: \n '

#Udskriv den nye CSV-fil i tabelform

kat modifiedcustomers2.csv | kolonne -s, -t

Følgende output vises efter eksekvering af scriptet:

Eksempel 4: Udskriv det samlede antal rækker og kolonner i CSV-filen

Opret en Bash-fil med følgende script, der tæller det samlede antal rækker og kolonner i filen 'customers.csv'. NR-variablen bruges til at udskrive det samlede antal rækker i filen. NF-variablen bruges til at udskrive det samlede antal felter i filen.

printf 'Original fil: \n '

#Udskriv det originale indhold af CSV-filen

kat kunder.csv

ekko

ekko -n 'Rækker i alt:'

awk -F, 'SLUT{print NR}' kunder.csv

ekko -n 'Samlet kolonner:'

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

Følgende output vises efter eksekvering af scriptet. Det samlede antal linjer i filen er 6, og det samlede antal felter i filen er 5, som udskrives i outputtet:

Konklusion

Metoderne til at læse en CSV-fil, ændre CSV-filen og tælle rækkerne og kolonnerne i CSV-filen ved hjælp af Bash-scriptet er vist i denne tutorial.