Ben*_*kes 290 linux csv macos command-line
有人知道Linux/OS X的命令行CSV查看器吗?我正在考虑类似less但是以更易读的方式将列空间化.(我可以用OpenOffice Calc或Excel打开它,但是这样做太过于无法仅仅按照我的需要查看数据.)水平和垂直滚动会很棒.
小智 408
你也可以用这个:
column -s, -t < somefile.csv | less -#2 -N -S
Run Code Online (Sandbox Code Playgroud)
column 是一个非常方便的标准unix程序 - 它找到每列的适当宽度,并将文本显示为格式良好的表.
注意:只要有空字段,就需要在其中放置某种占位符,否则该列将与以下列合并.以下示例演示如何使用sed插入占位符:
$ 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
Run Code Online (Sandbox Code Playgroud)
请注意,,,for 的替换, ,是两次.如果你只做了一次,那么自从第二个逗号已经匹配后1,,,4就会变成这样1, ,,4.
小智 95
您可以通过安装csvtool(在Ubuntu上)
sudo apt-get install csvtool
Run Code Online (Sandbox Code Playgroud)
然后运行:
csvtool readable filename | view -
Run Code Online (Sandbox Code Playgroud)
即使你有一些具有很长值的单元格,这也会使它在一个只读的vim实例中很漂亮.
Kai*_*nad 65
看看csvkit.它提供了一组符合UNIX哲学的工具(意味着它们小巧,简单,单一用途并且可以组合使用).
这是一个从免费的Maxmind World Cities数据库中提取德国人口最多的10个城市并以控制台可读格式显示结果的示例:
$ 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 |
-----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
Csvkit是独立于平台的,因为它是用Python编写的.
Sco*_*sen 43
Tabview:轻量级python curses命令行CSV文件查看器(以及其他表格Python数据,如列表列表)在Github上
use*_*385 21
可以全局安装nodejs包tecfu/tty-table来做到这一点:
apt-get install nodejs
npm i -g tty-table
cat data.csv | tty-table
Run Code Online (Sandbox Code Playgroud)
它也可以处理流.
有关详细信息,请参阅此处的终端使用文档.
Ofri的答案为您提供了所需的一切.但是..如果你不想记住命令,你可以将它添加到你的〜/ .bashrc(或等效的):
csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}
Run Code Online (Sandbox Code Playgroud)
这与Ofri的答案完全相同,除了我将它包装在一个shell函数中并使用less -S选项来停止换行(使得less行为更像办公室/ oocalc).
打开一个新shell(或source ~/.bashrc在当前shell中键入)并使用以下命令运行命令:
csview <filename>
我很长一段时间都使用了pisswillis的答案.
csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}
Run Code Online (Sandbox Code Playgroud)
但结合我在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
}
Run Code Online (Sandbox Code Playgroud)
它对我来说效果更好的原因是它可以更好地处理宽列.
另一种多功能 CSV(不仅仅是)操作工具:Miller。从它自己的描述来看,它类似于对名称索引数据(例如 CSV、TSV 和表格 JSON)进行 awk、sed、cut、join 和 sort。(链接到 github 存储库:https://github.com/johnkerl/miller)
这是一个(可能也是)简单的选项:
sed "s/,/\t/g" filename.csv | less
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213920 次 |
| 最近记录: |