Lire le fichier CSV dans Bash

Lire Le Fichier Csv Dans Bash



La forme complète de CSV est une valeur séparée par des virgules. Le fichier CSV est utilisé par le codeur à de nombreuses fins qui stockent les données sous forme de tableaux semi-structurés. Chaque ligne du fichier est traitée comme une ligne du tableau et chaque champ de la ligne est séparé par une virgule (,) dans le fichier CSV. De nombreuses façons existent dans Bash pour lire les fichiers CSV qui sont expliqués dans ce tutoriel.

Conditions préalables:

Vous devez créer un fichier CSV avant de pratiquer l'exemple de ce tutoriel. Créez un fichier CSV nommé 'customers.csv' avec le contenu suivant pour vérifier la sortie du script utilisé dans ce didacticiel. Dans ce dossier, les 3 rd champs des 4 e ligne et 6 e ligne sont vides.

ID, nom, e-mail, adresse, mobile

101 , Jafar Iqbal, Jafar @ gmail.com, 9 / A Dhanmondi Dacca, + 8801762341425

102 , Kamal Hossain, Kamal @ gmail.com, 120 Mirpur Dacca, 8801988675345

103 Nirob Chowdhury 33 / 2 Jigatola Dacca, 8801754532312

104 Farheen Hassan @ gmail.com < un href = 'blanc' > , un > dix Kadhalbagun Dacca, + 8801512875634

105 , md. Rahim,, 2 / B Dhanmondi Dacca, + 8801700453423

Différentes façons de lire le fichier CSV dans Bash

Le fichier CSV peut être analysé de différentes manières à l'aide d'un script Bash. Différentes façons de lire le fichier « clients.csv » sont présentées dans cette partie du didacticiel.







Exemple 1 : lire le contenu original du fichier CSV

Créez un fichier Bash avec le script suivant qui lit le contenu complet du fichier « customers.csv » à l'aide de la boucle « while » :



#!/bin/bash

#Définissez le nom du fichier

nom de fichier = 'clients.csv'

#Lire chaque ligne du fichier à chaque itération

alors que lire données

faire

#Imprimez la ligne

écho $données

fait < $nomfichier

Le résultat suivant s'affiche après l'exécution du script :







Exemple 2 : lire le fichier CSV en mettant l'en-tête en majuscule

La première ligne du fichier « clients.csv » contient l'en-tête du fichier. Créez un fichier Bash avec le script suivant qui imprime le contenu du fichier 'customers.csv' après avoir mis en majuscule la première ligne du fichier. La commande 'awk' est utilisée dans le script pour imprimer le contenu du fichier après avoir mis en majuscule l'en-tête. La virgule (,) est affectée dans les valeurs FS et OFS du script pour lire le fichier « customers.csv » et écrire le fichier « updatedcustomers.csv ». La commande 'cat' est utilisée pour imprimer le contenu des deux fichiers.

printf 'Fichier d'origine : \n '

#Imprimer le contenu original du fichier CSV

chat clients.csv

#Créer un nouveau fichier CSV après avoir capitalisé l'en-tête

ok 'COMMENCER{FS=',';OFS=','}

{

si(NR==1)

imprimer dessus($0)

autre

imprimer

}'
clients.csv > clientsmis à jour.csv

printf ' \n Fichier modifié : \n '

#Imprimez le nouveau fichier CSV

chat clientsmis à jour.csv

Le résultat suivant s'affiche après l'exécution du script :



Exemple 3 : Remplacer le champ vide du fichier CSV par 'Aucun'

Créez un fichier Bash avec le script suivant qui imprime le contenu du fichier 'customers.csv' après avoir modifié le champ vide avec la valeur 'None'. Deux champs sont vides dans ce fichier qui sont mentionnés dans la suite. La commande « awk » est utilisée dans le script pour imprimer le contenu du fichier après modification des champs vides. La virgule (,) est affectée dans les valeurs FS et OFS du script pour lire le fichier « customers.csv » et écrire le fichier « updatedcustomers.csv ». La commande 'cat' est utilisée pour imprimer le contenu des deux fichiers au format tabulaire.

printf 'Fichier d'origine : \n '

#Imprimez le contenu original du fichier CSV sous forme de tableau

chat clients.csv | Colonnes, -t

ok 'COMMENCER{FS=',';OFS=','}

{

pour(champ=1;champ<=NF;champ++)

{

if($field == '') $field='Aucun'

}

imprimer

}'
clients.csv > clientsmodifiés2.csv

printf ' \n Fichier modifié : \n '

#Imprimez le nouveau fichier CSV sous forme de tableau

chat clientsmodifiés2.csv | Colonnes, -t

Le résultat suivant s'affiche après l'exécution du script :

Exemple 4 : Imprimer le nombre total de lignes et de colonnes du fichier CSV

Créez un fichier Bash avec le script suivant qui compte le nombre total de lignes et de colonnes dans le fichier « customers.csv ». La variable NR permet d'imprimer le nombre total de lignes du fichier. La variable NF permet d'imprimer le nombre total de champs du fichier.

printf 'Fichier d'origine : \n '

#Imprimer le contenu original du fichier CSV

chat clients.csv

écho

écho -n 'Nombre total de lignes :'

ok -F, 'FIN{imprimer NR}' clients.csv

écho -n 'Nombre total de colonnes :'

ok -F, 'FIN{imprimer NF}' clients.csv

La sortie suivante apparaît après l'exécution du script. Le nombre total de lignes dans le fichier est de 6 et le nombre total de champs du fichier est de 5 qui sont imprimés dans la sortie :

Conclusion

Les méthodes de lecture d'un fichier CSV, de modification du fichier CSV et de comptage des lignes et des colonnes du fichier CSV à l'aide du script Bash sont présentées dans ce didacticiel.