GNU/Linux >> Tutoriels Linux >  >> Linux

Afficher un fichier tabulaire tel que CSV à partir de la ligne de commande

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.


Linux
  1. Comment afficher la taille/les détails du fichier à partir de la commande ls sous Unix

  2. Importation CSV PostgreSQL depuis la ligne de commande

  3. Comment puis-je ouvrir un fichier en lecture seule à partir de la ligne de commande avec emacs/vi/vim

  4. Comment obtenir l'URL du fichier Dropbox à partir de la ligne de commande ?

  5. Clonezilla depuis la ligne de commande

Copier un fichier dans plusieurs répertoires à partir de la ligne de commande sous Linux

Comment envoyer un e-mail avec une pièce jointe à partir de la ligne de commande

Afficher le contenu d'un fichier dans la ligne de commande Linux

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

5 commandes pour afficher le contenu d'un fichier en ligne de commande Linux

Comment vérifier l'utilisation d'Inode à partir de cPanel et de la ligne de commande ?