Cerințe preliminare:
Trebuie să creați un fișier CSV înainte de a practica exemplul acestui tutorial. Creați un fișier CSV numit „customers.csv” cu următorul conținut pentru a verifica rezultatul scriptului care este utilizat în acest tutorial. În acest fișier, 3 rd câmpurile celor 4 th linia și 6 th linia sunt goale.
ID, nume, e-mail, adresă, 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 = 'gol' > , A > 10 Kadhalbagun Dhaka, + 8801512875634
105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423
Diferite moduri de a citi fișierul CSV în Bash
Fișierul CSV poate fi analizat în diferite moduri folosind un script Bash. Diferite moduri de a citi fișierul „customers.csv” sunt prezentate în această parte a tutorialului.
Exemplul 1: Citiți conținutul original al fișierului CSV
Creați un fișier Bash cu următorul script care citește întregul conținut al fișierului „customers.csv” folosind bucla „while”:
#!/bin/bash
#Setați numele fișierului
nume de fișier = „clienți.csv”
#Citiți fiecare linie a fișierului în fiecare iterație
in timp ce citit date
do
#Tipărește linia
ecou $date
Terminat < $nume fișier
Următoarea ieșire apare după executarea scriptului:
Exemplul 2: Citiți fișierul CSV prin scrierea antetului cu majuscule
Prima linie a fișierului „customers.csv” conține antetul fișierului. Creați un fișier Bash cu următorul script care imprimă conținutul fișierului „customers.csv” după scrierea cu majuscule a primei linii a fișierului. Comanda „awk” este folosită în script pentru a imprima conținutul fișierului după scrierea cu majuscule a antetului. Virgula (,) este atribuită în valorile FS și OFS din script pentru a citi fișierul „customers.csv” și a scrie fișierul „updatedcustomers.csv”. Comanda „cat” este folosită pentru a imprima conținutul ambelor fișiere.
printf „Fișierul original: \n '#Tipărește conținutul original al fișierului CSV
pisică cstomers.csv
#Creați un nou fișier CSV după scrierea cu majuscule a antetului
awk „BEGIN{FS=',';OFS=','}
{
dacă(NR==1)
tupper de imprimare ($0)
altfel
imprimare
}' clienti.csv > updatedcustomers.csv
printf ' \n Fișier modificat: \n '
#Imprimați noul fișier CSV
pisică updatedcustomers.csv
Următoarea ieșire apare după executarea scriptului:
Exemplul 3: Înlocuiți câmpul gol al fișierului CSV cu „Niciunul”
Creați un fișier Bash cu următorul script care imprimă conținutul fișierului „customers.csv” după modificarea câmpului gol cu valoarea „Niciuna”. Două câmpuri sunt goale în acest fișier, care sunt menționate în cele ce urmează. Comanda „awk” este folosită în script pentru a imprima conținutul fișierului după modificarea câmpurilor goale. Virgula (,) este atribuită în valorile FS și OFS din script pentru a citi fișierul „customers.csv” și a scrie fișierul „updatedcustomers.csv”. Comanda „cat” este folosită pentru a imprima conținutul ambelor fișiere în format tabelar.
printf „Fișierul original: \n '#Tipărește conținutul original al fișierului CSV în formă tabelară
pisică clienti.csv | coloana -s, -t
awk „BEGIN{FS=',';OFS=','}
{
pentru(câmp=1;câmp<=NF;câmp++)
{
if($câmp == '') $câmp='Niciunul'
}
imprimare
}' clienti.csv > modifiedcustomers2.csv
printf ' \n Fișier modificat: \n '
#Imprimați noul fișier CSV în formă tabelară
pisică modifiedcustomers2.csv | coloana -s, -t
Următoarea ieșire apare după executarea scriptului:
Exemplul 4: Imprimați numărul total de rânduri și coloane ale fișierului CSV
Creați un fișier Bash cu următorul script care numără numărul total de rânduri și coloane din fișierul „customers.csv”. Variabila NR este utilizată pentru a tipări numărul total de rânduri ale fișierului. Variabila NF este utilizată pentru a tipări numărul total de câmpuri ale fișierului.
printf „Fișierul original: \n '#Tipărește conținutul original al fișierului CSV
pisică clienti.csv
ecou
ecou -n „Total rânduri:”
awk -F, „END{print NR}” clienti.csv
ecou -n „Total coloane:”
awk -F, „Sfârșit{printați NF}” clienti.csv
Următoarea ieșire apare după executarea scriptului. Numărul total de linii din fișier este de 6, iar câmpurile totale ale fișierului este de 5, care sunt tipărite în rezultat:
Concluzie
Metodele de citire a unui fișier CSV, de modificare a fișierului CSV și de numărare a rândurilor și coloanelor fișierului CSV folosind scriptul Bash sunt prezentate în acest tutorial.