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