有人知道Linux/OS X的命令行CSV查看器吗?我在考虑一些更少的东西,但以一种更可读的方式分隔列。(我可以用OpenOffice Calc或Excel打开它,但这对于我需要查看的数据来说太强大了。)有水平和垂直滚动会很棒。
当前回答
我用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
}
对我来说,它工作得更好的原因是它能更好地处理宽列。
其他回答
安装csvtool(在Ubuntu上)
sudo apt-get install csvtool
然后运行:
csvtool readable filename | view -
这将使它在只读的vim实例中非常漂亮,即使您有一些具有非常长的值的单元格。
这里有一个(可能太)简单的选择:
sed "s/,/\t/g" filename.csv | less
使用TxtSushi您可以做到:
csvtopretty filename.csv | less -S
看看csvkit。它提供了一组遵循UNIX哲学的工具(这意味着它们很小、简单、用途单一,并且可以组合使用)。
下面是一个例子,它从免费的Maxmind世界城市数据库中提取了德国人口最多的十个城市,并以控制台可读的格式显示结果:
$ 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是平台独立的,因为它是用Python编写的。
Tabview真的很好。工作200+MB的文件,显示很好,这是与LibreOffice的bug,以及在gvim的csv插件。
Anaconda版本可以在这里找到:https://anaconda.org/bioconda/tabview
推荐文章
- Python csv字符串到数组
- 我怎么能得到'查找'忽略。svn目录?
- Linux相当于Mac OS X的“open”命令
- 如何在Mac上的命令行安装JQ ?
- 在Mac OS X上安装/升级gradle
- 如何在终端中提高光标速度?
- 如何在Linux中循环目录?
- 在命令行中使用Firefox截取完整页面的截图
- 在pip install -U中“-U”选项代表什么
- Objective-C中的自动引用计数不能防止或减少什么样的泄漏?
- 如何将参数转发到bash脚本中的其他命令?
- 如何确定一个进程是否运行在lxc/Docker内部?
- 仅在文件不存在时才将行追加到文件中
- 如何强制makefile重新构建目标?
- 如何在父进程退出后使子进程死亡?