Search code examples
linuxcsvcommand-linepretty-print

How to pretty print the csv which has long columns from command line?


I want to view and pretty print this csv file from command line. For this purpose I am using csvlook nupic_out.csv | less -#2 -N -S command. The problem is that this csv file has very long one column (it is the 5th - multiStepPredictions.1) Everything up to this column is displayed properly

  1 -----------------+--------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------
  2  angle           | sine               | multiStepPredictions.actual | multiStepPredictions.1
  3 -----------------+--------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------
  4  string          | string             | string                      | string
  5                  |                    |                             |
  6  0.0             | 0.0                | 0.0                         | None
  7  0.0314159265359 | 0.0314107590781    | 0.0314107590781             | {0.0: 1.0}
  8  0.0628318530718 | 0.0627905195293    | 0.0627905195293             | {0.0: 0.0039840637450199202      0.03141075907812829: 0.99601593625497931}
  9  0.0942477796077 | 0.0941083133185    | 0.0941083133185             | {0.03141075907812829: 1.0}
 10  0.125663706144  | 0.125333233564     | 0.125333233564              | {0.06279051952931337: 0.98942669172932329        0.03141075907812829: 0.010573308270676691}
 11  0.157079632679  | 0.15643446504      | 0.15643446504               | {0.03141075907812829: 0.0040463956041429626      0.09410831331851431: 0.94917381047888194        0.06279051952931337: 0.04677979391
 12  0.188495559215  | 0.187381314586     | 0.187381314586              | {0.12533323356430426: 0.85789473684210527        0.09410831331851431: 0.14210526315789476}
 13  0.219911485751  | 0.218143241397     | 0.218143241397              | {0.15643446504023087: 0.63177315983686211        0.12533323356430426: 0.26859584385317475        0.09410831331851431: 0.09963099630
 14  0.251327412287  | 0.248689887165     | 0.248689887165              | {0.06279051952931337: 0.3300438596491227         0.1873813145857246: 0.47381368550527647         0.15643446504023087: 0.12643231695
 15  0.282743338823  | 0.278991106039     | 0.278991106039              | {0.21814324139654254: 0.56140350877192935        0.03141075907812829: 0.0032894736842105313      0.1873813145857246: 0.105263157894
 16  0.314159265359  | 0.309016994375     | 0.309016994375              | {0.2486898871648548: 0.8228480378168288  0.03141075907812829: 0.0029688002160632981      0.1873813145857246: 0.022936632244020292
 17  0.345575191895  | 0.338737920245     | 0.338737920245              | {0.2486898871648548: 0.13291723147401985         0.2789911060392293: 0.77025390613412514         0.21814324139654254: 0.06654338668
 18  0.376991118431  | 0.368124552685     | 0.368124552685              | {0.2486898871648548: 0.10230061459892241         0.2789911060392293: 0.14992465949587844         0.21814324139654254: 0.06517018413
 19  0.408407044967  | 0.397147890635     | 0.397147890635              | {0.33873792024529137: 0.67450197451277849        0.2486898871648548: 0.028274124758268366        0.2789911060392293: 0.077399230934
 20  0.439822971503  | 0.425779291565     | 0.425779291565              | {0.33873792024529137: 0.17676914536466748        0.3681245526846779: 0.6509556160617509  0.2486898871648548: 0.04784688995215327
 21  0.471238898038  | 0.45399049974      | 0.45399049974               | {0.33873792024529137: 0.038582651338955089       0.3681245526846779: 0.14813277049357607         0.2486898871648548: 0.029239766081
 22  0.502654824574  | 0.481753674102     | 0.481753674102              | {0.3681245526846779: 0.035163881050575212        0.42577929156507266: 0.61447711863333254        0.2486898871648548: 0.015554881705
 23  0.53407075111   | 0.50904141575      | 0.50904141575               | {0.33873792024529137: 0.076923076923077108       0.42577929156507266: 0.11307647489430354        0.45399049973954675: 0.66410206612
 24  0.565486677646  | 0.535826794979     | 0.535826794979              | {0.42577929156507266: 0.035628438284964516       0.45399049973954675: 0.22906083786048709        0.3971478906347806: 0.014132015120
 25  0.596902604182  | 0.562083377852     | 0.562083377852              | {0.5090414157503713: 0.51578106597362727         0.45399049973954675: 0.095000708551421106       0.06279051952931337: 0.08649420683
 26  0.628318530718  | 0.587785252292     | 0.587785252292              | {0.5090414157503713: 0.10561370056909389         0.45399049973954675: 0.063130123291224485       0.5358267949789967: 0.617348556187
 27  0.659734457254  | 0.612907053653     | 0.612907053653              | {0.5090414157503713: 0.036017118165629407        0.45399049973954675: 0.013316643552779454       0.5358267949789967: 0.236874795987
 28  0.69115038379   | 0.637423989749     | 0.637423989749              | {0.2486898871648548: 0.037593984962406228        0.21814324139654254: 0.033834586466165564       0.5358267949789967: 0.085397996837
 29  0.722566310326  | 0.661311865324     | 0.661311865324              | {0.6129070536529765: 0.49088597257034694         0.2486898871648548: 0.072573707671854309        0.06279051952931337: 0.04684445139
 30  0.753982236862  | 0.684547105929     | 0.684547105929              | {0.6129070536529765: 0.16399317807418579         0.2486898871648548: 0.066194656736965368        0.2789911060392293: 0.015074193295

But everything displayed behind this column is garbage

  1 --------------------------------------------------------------------------------------------------------+--------------+---------------------------------+----------------------------+--------------+---
  2                                                                                                         | anomalyScore | multiStepBestPredictions.actual | multiStepBestPredictions.1 | anomalyLabel | mu
  3 --------------------------------------------------------------------------------------------------------+--------------+---------------------------------+----------------------------+--------------+---
  4                                                                                                         | string       | string                          | string                     | string       | fl
  5                                                                                                         |              |                                 |                            |              |
  6                                                                                                         | 1.0          | 0.0                             | None                       | []           | 0
  7                                                                                                         | 1.0          | 0.0314107590781                 | 0.0                        | []           | 10
  8                                                                                                             | 1.0          | 0.0627905195293                 | 0.0314107590781            | []
  9                                                                                                         | 1.0          | 0.0941083133185                 | 0.0314107590781            | []           | 66
 10                                                                                                               | 1.0          | 0.125333233564                  | 0.0627905195293            | []
 11                                                                                                                   | 1.0          | 0.15643446504                   | 0.0941083133185            | []
 12                                                                                                               | 1.0          | 0.187381314586                  | 0.125333233564             | []
 13                                                                                                                     | 1.0          | 0.218143241397                  | 0.15643446504              | []
 14                                                                                                                                  | 1.0          | 0.248689887165                  | 0.187381314586
 15                                                                                                                          | 1.0          | 0.278991106039                  | 0.218143241397             |
 16                                                                                                                        | 1.0          | 0.309016994375                  | 0.248689887165             | []
 17                                                                                                                                  | 1.0          | 0.338737920245                  | 0.278991106039
 18 075907812829: 0.0008726186745285988      0.3090169943749474: 0.36571033632089267         0.15643446504023087: 0.15263157894736851}                | 1.0          | 0.368124552685                  | 0.30
 19 69943749474: 0.12243639244611626         0.15643446504023087: 0.076923076923077024}                                                         | 1.0          | 0.397147890635                  | 0.33873792
 20 474: 0.042824288244468607}                                                                                                      | 1.0          | 0.425779291565                  | 0.368124552685
 21 78906347806: 0.72014752277063943         0.3090169943749474: 0.019779736758565116}                                                          | 1.0          | 0.45399049974                   | 0.39714789
 22 323356430426: 0.030959752321981428       0.09410831331851431: 0.027863777089783253}                                                        | 1.0          | 0.481753674102                  | 0.425779291
 23 831331851431: 0.036437246963562819}                                                                                                 | 1.0          | 0.50904141575                   | 0.45399049974
 24 831331851431: 0.011027980232581683}                                                                                                  | 1.0          | 0.535826794979                  | 0.481753674102
 25 929156507266: 0.027856989831229011       0.15643446504023087: 0.02066616653788458        0.09410831331851431: 0.016739594895686508}             | 1.0          | 0.562083377852                  | 0.5090
 26 13145857246: 0.08333333333333337         0.42577929156507266: 0.025020076940584089}                                                             | 1.0          | 0.587785252292                  | 0.5358
 27 075907812829: 0.0025974025974026035      0.5620833778521306: 0.59566175023106149}                                                         | 1.0          | 0.612907053653                  | 0.5620833778
 28 33778521306: 0.19639042255084313}   one                                                                                                   | 1.0          | 0.637423989749                  | 0.587785252292
 29 13145857246: 0.0046487548012272466       0.21814324139654254: 0.070071166027997234       0.5620833778521306: 0.087432430700408653}               | 1.0          | 0.661311865324                  | 0.612
 30 39897486896: 0.53158336716673826         0.3090169943749474: 0.016749103661249369        0.5620833778521306: 0.027323827946545261}                 | 1.0          | 0.684547105929                  | 0.6

How to pretty print whole csv?

PS: Similar garbage produces also following commands (inspiration here):

column -s, -t < nupic_out.csv | less -#2 -N -S

csvtool readable nupic_out.csv | less -#2 -N -S


Solution

  • I believe that csvlook is treating the tab characters in that column just like any other character, and doesn't know about their special behaviour.

    The easiest way to get the columns to line up is to minimally expand the tabs:

    expand -t1 nupic_out.csv | csvlook