有人知道Linux/OS X的命令行CSV查看器吗?我在考虑一些更少的东西,但以一种更可读的方式分隔列。(我可以用OpenOffice Calc或Excel打开它,但这对于我需要查看的数据来说太强大了。)有水平和垂直滚动会很棒。


当前回答

在python中有一个简短的命令行脚本:https://github.com/rgrp/csv2ascii/blob/master/csv2ascii.py

只需下载并放置在您的路径。用法就像

csv2ascii.py [options] csv-file-path

转换csv文件在csv-file-path到ascii形式返回的结果 stdout。如果csv-file-path = '-'则从stdin读取。

选项:

  -h, --help            show this help message and exit
  -w WIDTH, --width=WIDTH
                        Width of ascii output
  -c COLUMNS, --columns=COLUMNS
                        Only display this number of columns

其他回答

这里有一个(可能太)简单的选择:

sed "s/,/\t/g" filename.csv | less

奥弗里的回答会告诉你你想要的一切。 但. .如果你不想记住这个命令,你可以把它添加到你的~/。Bashrc(或同等):

csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}

这与Ofri的答案完全相同,除了我已经将它包装在一个shell函数中,并且使用less -S选项来停止行包装(使less的行为更像office/oocalc)。

打开一个新的shell(或者输入source ~/。Bashrc在你当前的shell),并运行命令使用:

csview < filename >

我用pisswillis的答案用了很长时间。

csview()
{
    local file="$1"
    sed "s/,/\t/g" "$file" | less -S
}

但后来结合了一些我在http://chrisjean.com/2011/06/17/view-csv-data-from-the-command-line上找到的更适合我的代码:

csview()
{
    local file="$1"
    cat "$file" | sed -e 's/,,/, ,/g' | column -s, -t | less -#5 -N -S
}

对我来说,它工作得更好的原因是它能更好地处理宽列。

Tabulator包中的tblless包装了unix column命令,并且还对数值列进行对齐。

如果你是一个vimmer,使用CSV插件,它非常漂亮:

.