Lees het CSV-bestand in Bash

Lees Het Csv Bestand In Bash



De volledige vorm van CSV is door komma's gescheiden waarden. Het CSV-bestand wordt door de codeur voor vele doeleinden gebruikt, waarbij de gegevens in tabelvorm met semi-structuren worden opgeslagen. Elke regel van het bestand wordt behandeld als een rij van de tabel en elk veld van de rij wordt gescheiden door een komma (,) in het CSV-bestand. Er zijn veel manieren in Bash om de CSV-bestanden te lezen die in deze tutorial worden uitgelegd.

Vereisten:

U moet een CSV-bestand maken voordat u het voorbeeld van deze zelfstudie oefent. Maak een CSV-bestand met de naam 'customers.csv' met de volgende inhoud om de uitvoer te controleren van het script dat in deze zelfstudie wordt gebruikt. In dit bestand, de 3 e.d velden van de 4 e lijn en 6 e regel zijn leeg.

ID, Naam, E-mail, Adres, Mobiel

101 , Jafar Iqbal, Jafar @ gmail.com, 9 / Een Dhanmondi Dhaka, + 8801762341425

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

103 Nirob Chowdhury 33 / 2 Jigatola Dhaka, 8801754532312

104 Farheen Hassan @ gmail.com < A href = 'blanco' > , A > 10 Kadhalbagun Dhaka, + 8801512875634

105 , Md. Rahiem,, 2 / B Dhanmondi Dhaka, + 8801700453423

Verschillende manieren om het CSV-bestand in Bash te lezen

Het CSV-bestand kan op verschillende manieren worden geparseerd met behulp van een Bash-script. In dit deel van de zelfstudie worden verschillende manieren getoond om het bestand 'customers.csv' te lezen.







Voorbeeld 1: lees de originele inhoud van het CSV-bestand

Maak een Bash-bestand met het volgende script dat de volledige inhoud van het bestand 'customers.csv' leest met behulp van de 'while'-lus:



#!/bin/bash

#Stel de bestandsnaam in

bestandsnaam = 'klanten.csv'

#Lees elke regel van het bestand in elke iteratie

terwijl lezen gegevens

Doen

#Druk de regel af

echo $ gegevens

klaar < $bestandsnaam

De volgende uitvoer verschijnt na het uitvoeren van het script:







Voorbeeld 2: Lees het CSV-bestand door de koptekst met hoofdletters te schrijven

De eerste regel van het bestand 'customers.csv' bevat de titel van het bestand. Maak een Bash-bestand met het volgende script dat de inhoud van het bestand 'customers.csv' afdrukt nadat de eerste regel van het bestand in hoofdletters is geschreven. De opdracht 'awk' wordt in het script gebruikt om de inhoud van het bestand af te drukken na het hoofdlettergebruik. De komma(,) wordt toegewezen in de FS- en OFS-waarden in het script om het bestand 'customers.csv' te lezen en het bestand 'updatedcustomers.csv' te schrijven. De opdracht 'cat' wordt gebruikt om de inhoud van beide bestanden af ​​te drukken.

printf 'Oorspronkelijk bestand: \N '

#Druk de originele inhoud van het CSV-bestand af

kat cstomers.csv

#Maak een nieuw CSV-bestand na hoofdletters in de koptekst

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

{

als(NR==1)

bovenstuk afdrukken($0)

anders

afdrukken

}'
klanten.csv > bijgewerkteklanten.csv

printf ' \N Gewijzigd bestand: \N '

#Druk het nieuwe CSV-bestand af

kat bijgewerkteklanten.csv

De volgende uitvoer verschijnt na het uitvoeren van het script:



Voorbeeld 3: vervang het lege veld van het CSV-bestand door 'Geen'

Maak een Bash-bestand met het volgende script dat de inhoud van het bestand 'customers.csv' afdrukt na het wijzigen van het lege veld met de waarde 'Geen'. In dit bestand zijn twee velden leeg die hieronder worden vermeld. De opdracht 'awk' wordt in het script gebruikt om de inhoud van het bestand af te drukken na het wijzigen van de lege velden. De komma(,) wordt toegewezen in de FS- en OFS-waarden in het script om het bestand 'customers.csv' te lezen en het bestand 'updatedcustomers.csv' te schrijven. De opdracht 'cat' wordt gebruikt om de inhoud van beide bestanden in tabelvorm af te drukken.

printf 'Oorspronkelijk bestand: \N '

#Druk de originele inhoud van het CSV-bestand af in tabelvorm

kat klanten.csv | kolom -s, -T

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

{

voor(veld=1;veld<=NF;veld++)

{

if($field == '') $field='Geen'

}

afdrukken

}'
klanten.csv > gewijzigdeklanten2.csv

printf ' \N Gewijzigd bestand: \N '

#Druk het nieuwe CSV-bestand af in tabelvorm

kat gewijzigdeklanten2.csv | kolom -s, -T

De volgende uitvoer verschijnt na het uitvoeren van het script:

Voorbeeld 4: druk het totale aantal rijen en kolommen van het CSV-bestand af

Maak een Bash-bestand met het volgende script dat het totale aantal rijen en kolommen in het bestand 'customers.csv' telt. De variabele NR wordt gebruikt om het totale aantal rijen van het bestand af te drukken. De variabele NF wordt gebruikt om het totale aantal velden van het bestand af te drukken.

printf 'Oorspronkelijk bestand: \N '

#Druk de originele inhoud van het CSV-bestand af

kat klanten.csv

echo

echo -N 'Totaal aantal rijen:'

awk -F, 'EINDE{print NR}' klanten.csv

echo -N 'Totaal aantal kolommen:'

awk -F, 'EINDE{print NF}' klanten.csv

De volgende uitvoer verschijnt na het uitvoeren van het script. Het totale aantal regels in het bestand is 6 en het totale aantal velden van het bestand is 5 die in de uitvoer worden afgedrukt:

Conclusie

De methoden voor het lezen van een CSV-bestand, het wijzigen van het CSV-bestand en het tellen van de rijen en kolommen van het CSV-bestand met behulp van het Bash-script worden in deze zelfstudie getoond.