[Commandes Linux] Xan
Introduction
Cet outil permet de travailler avec les fichiers CSV en ligne de commande. En plus il est développé en Rust ce qui le rend beaucoup plus performant qu'un excel, ou libre office.
Manuel
Documentations
La doc est vraiment complète :
- https://github.com/medialab/xan/tree/master/docs/cmd
- https://korben.info/xan-couteau-suisse-manipulation-csv-ligne-commande.html
View
Pour afficher un fichier csv basiquement :
xan view file.csv
Headers
Pour afficher les noms des colonnes :
xan headers
Count
Pour savoir le nombre d'entrées :
xan count
Select
xan select col1,col3,col5
Sort
Pour trier sur un colonne (par exemple les dates) :
xan sort -R -s 'date'
Dans cet exemple, on tri dans l'ordre décroissant avec le -R sur la colonne date .
Filter
xan filter 'country eq "FR"'
Vous pouvez consulter la documentation des expressions avec xan help cheatsheet .
Agg
Pour effectuer une aggrégation sur une colonne comme une somme des valeurs :
xan agg 'sum(Revenu) as total_revenus'
Groupby
Il s'agit d'une alternative à Agg qui permet d'effectuer une expression (comme une somme) pour chaque valeur d'une autre colonne.
Voici un exemple où on calcul le total des revenus pour chaque entreprise :
xan groupby 'Entreprise' 'sum(Revenu) as total_revenus'
From
Pour convertir d'autre formats de fichiers en CSV notamment du json :
xan from <FILE>.json
Plot
Permet de générer des graphiques :
xan plot -LT 'date' 'revenu' --rows 10 --y-min 1 -c 'entreprise'
Autre exemple si vous souhaitez afficher le nombre d'occurence d'un champ dans le temps (si vous n'avez pas de Y) :
xan plot --count -LT 'date' --rows 10 --y-min 1
No Comments