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