Bash:
Travailler avec CSV
Comment faire :
Lire un fichier CSV ligne par ligne
while IFS=, read -r colonne1 colonne2 colonne3
do
echo "Colonne 1 : $colonne1, Colonne 2 : $colonne2, Colonne 3 : $colonne3"
done < exemple.csv
Exemple de sortie :
Colonne 1 : id, Colonne 2 : nom, Colonne 3 : email
...
Filtrer les lignes CSV sur la base d’une condition
Utilisant awk
, vous pouvez facilement filtrer les lignes. Par exemple, pour trouver les lignes où la deuxième colonne est égale à “Alice” :
awk -F, '$2 == "Alice" { print $0 }' exemple.csv
Modifier la valeur d’une colonne
Pour changer la deuxième colonne en majuscules :
awk -F, 'BEGIN {OFS=",";} { $2 = toupper($2); print $0; }' exemple.csv
Trier un fichier CSV basé sur une colonne
Vous pouvez trier un fichier CSV en se basant, disons, sur la troisième colonne (numériquement) :
sort -t, -k3,3n exemple.csv
Utiliser csvkit
pour des tâches plus complexes
csvkit
est un ensemble d’outils en ligne de commande pour convertir et travailler avec des CSV. Il peut être installé via pip.
Pour convertir un fichier JSON en CSV :
in2csv donnees.json > donnees.csv
Pour interroger un fichier CSV en utilisant SQL :
csvsql --query "SELECT nom FROM exemple WHERE id = 10" exemple.csv
Note : L’installation de csvkit
nécessite Python et peut être réalisée en utilisant pip install csvkit
.