Llegiu el fitxer CSV a Bash

Llegiu El Fitxer Csv A Bash



La forma completa de CSV és Comma Separated Value. El programador utilitza el fitxer CSV per a molts propòsits que emmagatzemen les dades en format tabular de semiestructures. Cada línia del fitxer es tracta com una fila de la taula i cada camp de la fila està separat per una coma (,) al fitxer CSV. Hi ha moltes maneres a Bash de llegir els fitxers CSV que s'expliquen en aquest tutorial.

Requisits previs:

Heu de crear un fitxer CSV abans de practicar l'exemple d'aquest tutorial. Creeu un fitxer CSV anomenat 'customers.csv' amb el contingut següent per comprovar la sortida de l'script que s'utilitza en aquest tutorial. En aquest fitxer, el 3 rd camps del 4 th línia i 6 th línia estan buides.

DNI, nom, correu electrònic, adreça, mòbil

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 = 'en blanc' > , a > 10 Kadhalbagun Dhaka, + 8801512875634

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

Diferents maneres de llegir el fitxer CSV a Bash

El fitxer CSV es pot analitzar de diferents maneres mitjançant un script Bash. En aquesta part del tutorial es mostren diferents maneres de llegir el fitxer 'customers.csv'.







Exemple 1: llegiu el contingut original del fitxer CSV

Creeu un fitxer Bash amb el següent script que llegeixi el contingut complet del fitxer 'customers.csv' mitjançant el bucle 'while':



#!/bin/bash

#Definiu el nom del fitxer

nom de l'arxiu = 'clients.csv'

#Llegiu cada línia del fitxer en cada iteració

mentre llegir dades

fer

#Imprimeix la línia

eco $data

fet < $nom de fitxer

La sortida següent apareix després d'executar l'script:







Exemple 2: llegiu el fitxer CSV posant la capçalera en majúscula

La primera línia del fitxer 'customers.csv' conté l'encapçalament del fitxer. Creeu un fitxer Bash amb el següent script que imprimeixi el contingut del fitxer 'customers.csv' després de posar en majúscula la primera línia del fitxer. L'ordre 'awk' s'utilitza a l'script per imprimir el contingut del fitxer després de posar en majúscula la capçalera. La coma (,) s'assigna als valors FS i OFS de l'script per llegir el fitxer 'customers.csv' i escriure el fitxer 'updatedcustomers.csv'. L'ordre 'cat' s'utilitza per imprimir el contingut dels dos fitxers.

imprimirf 'Fitxer original: \n '

#Imprimeix el contingut original del fitxer CSV

gat cstomers.csv

#Creeu un fitxer CSV nou després de posar la capçalera en majúscula

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

{

si(NR==1)

retolador d'impressió ($0)

altra cosa

imprimir

}'
clients.csv > updatedcustomers.csv

imprimirf ' \n Fitxer modificat: \n '

#Imprimeix el nou fitxer CSV

gat updatedcustomers.csv

La sortida següent apareix després d'executar l'script:



Exemple 3: substituïu el camp buit del fitxer CSV per 'Cap'

Creeu un fitxer Bash amb el següent script que imprimeixi el contingut del fitxer 'customers.csv' després de modificar el camp buit amb el valor 'Cap'. Dos camps estan buits en aquest fitxer que s'esmenten a continuació. L'ordre 'awk' s'utilitza a l'script per imprimir el contingut del fitxer després de modificar els camps buits. La coma (,) s'assigna als valors FS i OFS de l'script per llegir el fitxer 'customers.csv' i escriure el fitxer 'updatedcustomers.csv'. L'ordre 'cat' s'utilitza per imprimir el contingut dels dos fitxers en format tabular.

imprimirf 'Fitxer original: \n '

#Imprimeix el contingut original del fitxer CSV en forma de taula

gat clients.csv | columna -s, -t

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

{

for(camp=1;camp<=NF;camp++)

{

if($camp == '') $camp='Cap'

}

imprimir

}'
clients.csv > modifiedcustomers2.csv

imprimirf ' \n Fitxer modificat: \n '

#Imprimeix el nou fitxer CSV en forma de taula

gat modifiedcustomers2.csv | columna -s, -t

La sortida següent apareix després d'executar l'script:

Exemple 4: imprimiu el nombre total de files i columnes del fitxer CSV

Creeu un fitxer Bash amb l'script següent que compta el nombre total de files i columnes al fitxer 'customers.csv'. La variable NR s'utilitza per imprimir el nombre total de files del fitxer. La variable NF s'utilitza per imprimir el nombre total de camps del fitxer.

imprimirf 'Fitxer original: \n '

#Imprimeix el contingut original del fitxer CSV

gat clients.csv

eco

eco -n 'Files totals:'

awk -F, 'FIN{imprimir NR}' clients.csv

eco -n 'Total de columnes:'

awk -F, 'FIN{imprimir NF}' clients.csv

La sortida següent apareix després d'executar l'script. El total de línies del fitxer és de 6 i el total de camps del fitxer és de 5 que s'imprimeixen a la sortida:

Conclusió

En aquest tutorial es mostren els mètodes per llegir un fitxer CSV, modificar el fitxer CSV i comptar les files i columnes del fitxer CSV mitjançant l'script Bash.