Vous pouvez également utiliser ceci :
column -s, -t < somefile.csv | less -#2 -N -S
column
est un programme Unix standard qui est très pratique - il trouve la largeur appropriée de chaque colonne et affiche le texte sous forme de tableau bien formaté.
Remarque :chaque fois que vous avez des champs vides, vous devez y mettre une sorte d'espace réservé, sinon la colonne est fusionnée avec les colonnes suivantes. L'exemple suivant montre comment utiliser sed
pour insérer un espace réservé :
$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1 2 3 4 5
1 5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
Notez que la substitution de ,,
pour , ,
se fait deux fois. Si vous ne le faites qu'une seule fois, 1,,,4
deviendra 1, ,,4
puisque la deuxième virgule correspond déjà.
Vous pouvez installer csvtool
(sur Ubuntu) via
sudo apt-get install csvtool
puis lancez :
csvtool readable filename | view -
Cela le rendra agréable et joli à l'intérieur d'une instance vim en lecture seule, même si vous avez des cellules avec des valeurs très longues.
Jetez un oeil à csvkit. Il fournit un ensemble d'outils qui adhèrent à la philosophie UNIX (ce qui signifie qu'ils sont petits, simples, à usage unique et peuvent être combinés).
Voici un exemple qui extrait les dix villes les plus peuplées d'Allemagne de la base de données gratuite Maxmind World Cities et affiche le résultat dans un format lisible par console :
$ csvgrep -e iso-8859-1 -c 1 -m "de" worldcitiespop | csvgrep -c 5 -r "\d+"
| csvsort -r -c 5 -l | csvcut -c 1,2,4,6 | head -n 11 | csvlook
-----------------------------------------------------
| line_number | Country | AccentCity | Population |
-----------------------------------------------------
| 1 | de | Berlin | 3398362 |
| 2 | de | Hamburg | 1733846 |
| 3 | de | Munich | 1246133 |
| 4 | de | Cologne | 968823 |
| 5 | de | Frankfurt | 648034 |
| 6 | de | Dortmund | 594255 |
| 7 | de | Stuttgart | 591688 |
| 8 | de | Düsseldorf | 577139 |
| 9 | de | Essen | 576914 |
| 10 | de | Bremen | 546429 |
-----------------------------------------------------
Csvkit est indépendant de la plate-forme car il est écrit en Python.