Förutsättningar:
Du måste skapa en CSV-fil innan du övar på exemplet i denna handledning. Skapa en CSV-fil med namnet 'customers.csv' med följande innehåll för att kontrollera utdata från skriptet som används i den här handledningen. I den här filen, den 3 rd fält av 4 th linje och 6 th rad är tomma.
ID, namn, e-post, adress, 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 < a href = 'tom' > , a > 10 Kadhalbagun Dhaka, + 8801512875634
105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Olika sätt att läsa CSV-filen i Bash
CSV-filen kan tolkas på olika sätt med hjälp av ett Bash-skript. Olika sätt att läsa filen 'customers.csv' visas i den här delen av handledningen.
Exempel 1: Läs originalinnehållet i CSV-filen
Skapa en Bash-fil med följande skript som läser hela innehållet i filen 'customers.csv' med 'while'-loopen:
#!/bin/bash
#Ange filnamnet
filnamn = 'kunder.csv'
#Läs varje rad i filen i varje iteration
medan läsa data
do
#Skriv ut raden
eko $data
Gjort < $filnamn
Följande utdata visas efter exekvering av skriptet:
Exempel 2: Läs CSV-filen genom att använda versaler i rubriken
Den första raden i filen 'customers.csv' innehåller rubriken för filen. Skapa en Bash-fil med följande skript som skriver ut innehållet i filen 'customers.csv' efter att ha skrivit den första raden i filen med versaler. Kommandot 'awk' används i skriptet för att skriva ut innehållet i filen efter att rubriken har skrivits med versaler. Komma(,) tilldelas i FS- och OFS-värdena i skriptet för att läsa filen 'customers.csv' och skriva filen 'updatedcustomers.csv'. Kommandot 'cat' används för att skriva ut innehållet i båda filerna.
printf 'Original fil: \n '#Skriv ut det ursprungliga innehållet i CSV-filen
katt cstomers.csv
#Skapa en ny CSV-fil efter att ha versaler i rubriken
awk 'BEGIN{FS=',';OFS=','}
{
om(NR==1)
print toupper ($0)
annan
skriva ut
}' kunder.csv > uppdaterade kunder.csv
printf ' \n Ändrad fil: \n '
#Skriv ut den nya CSV-filen
katt uppdaterade kunder.csv
Följande utdata visas efter exekvering av skriptet:
Exempel 3: Ersätt det tomma fältet i CSV-filen med 'Ingen'
Skapa en Bash-fil med följande skript som skriver ut innehållet i filen 'customers.csv' efter att ha modifierat det tomma fältet med värdet 'Ingen'. Två fält är tomma i denna fil som nämns nedan. Kommandot 'awk' används i skriptet för att skriva ut innehållet i filen efter att ha ändrat de tomma fälten. Komma(,) tilldelas i FS- och OFS-värdena i skriptet för att läsa filen 'customers.csv' och skriva filen 'updatedcustomers.csv'. Kommandot 'cat' används för att skriva ut innehållet i båda filerna i tabellformat.
printf 'Original fil: \n '#Skriv ut det ursprungliga innehållet i CSV-filen i tabellform
katt kunder.csv | kolumn -s, -t
awk 'BEGIN{FS=',';OFS=','}
{
for(fält=1;fält<=NF;fält++)
{
if($field == '') $field='Ingen'
}
skriva ut
}' kunder.csv > modifiedcustomers2.csv
printf ' \n Ändrad fil: \n '
#Skriv ut den nya CSV-filen i tabellform
katt modifiedcustomers2.csv | kolumn -s, -t
Följande utdata visas efter exekvering av skriptet:
Exempel 4: Skriv ut det totala antalet rader och kolumner i CSV-filen
Skapa en Bash-fil med följande skript som räknar det totala antalet rader och kolumner i filen 'customers.csv'. Variabeln NR används för att skriva ut det totala antalet rader i filen. NF-variabeln används för att skriva ut det totala antalet fält i filen.
printf 'Original fil: \n '#Skriv ut det ursprungliga innehållet i CSV-filen
katt kunder.csv
eko
eko -n 'Totalt antal rader:'
awk -F, 'END{print NR}' kunder.csv
eko -n 'Totalt antal kolumner:'
awk -F, 'END{print NF}' kunder.csv
Följande utdata visas efter exekvering av skriptet. Det totala antalet rader i filen är 6 och det totala antalet fält i filen är 5 som skrivs ut i utdata:
Slutsats
Metoderna för att läsa en CSV-fil, ändra CSV-filen och räkna rader och kolumner i CSV-filen med Bash-skriptet visas i den här handledningen.