Citiți fișierul CSV în Bash

Cititi Fisierul Csv In Bash



Forma completă a CSV este Valoare separată prin virgulă. Fișierul CSV este folosit de către codificator în multe scopuri care stochează datele în format tabelar cu semistructuri. Fiecare linie a fișierului este tratată ca un rând al tabelului și fiecare câmp al rândului este separat prin virgulă (,) în fișierul CSV. Există multe modalități în Bash de a citi fișierele CSV, care sunt explicate în acest tutorial.

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