If you want to output a CSV file on Linux shell, you could just open it with less, cat or nano (un-formatted CSV output):
$> less mydummyfile.csv
$> cat mydummyfile.csv
$> nano mydummyfile.csv
The problem with this approach is, that you will get an unformatted ugly chunk of characters like that:
A much better way is it, to use the less command in combination with the column command like that:
$> column -s';' -t < mydummyfile.csv | less -N -S -#4
With the -s param you can define the CSV delimiter. In our case this is a semicolon (‘;’).
The -t parameter we tells column to make a table out of the fields separated by whitespaces (default) or – in our case – the delimiter specified by -s.
So column opens the given file and splits the content into columns. Afterwards the splittet content is sent to less via a pipe (|).
The -N param causes line numbers for each output row.
-S forces long lines to continue. That’s why theses lines do not fold and the content became scrollable to the right and left.
And finally -# 4 specifies, that the output should be moved by 4 positions (characters) on each keystroke to the left- or right arrow key (or kept pressed).
With this approach, you will get a nicely formatted output like that (formatted CSV output):
Which is much better to read. And you can just scroll from left to right and the other way around by using the arrow keys.