命令行 CSV 查看器

问题描述 投票:0回答:5

我的问题和 命令行 CSV 查看器? 并且

column -s, -t
命令答案几乎是完美的 - 除了它似乎没有像我期望的那样处理空的 csv 字段。例如给定输入

col1,,col3
,col2,

产生:

col1  col3
col2

但我想要:

col1      col3
     col2

是否有一个选项可以使用列命令来实现上述目标,或者有其他方法来实现这一目标? (cygwin环境)

linux command-line csv cygwin
5个回答
2
投票

这是离优雅最远的事情,你可能已经想到并正在寻找更好的解决方案,但我通过执行一系列 sed 替换来在空字段中放置空格来解决这个烦恼。我的 bashrc 中有这些函数...

csvcolumn() { sed -e "s/^$2/ $2/" -e "s/$2$/$2 /" -e "s/$2$2/$2 $2/g"  -e "s/$2$2/$2 $2/g" $1 | column -t -s$2 ; }
csvcomma() { sed -e 's/^,/ ,/' -e 's/,$/, /' -e 's/,,/, ,/g'  -e 's/,,/, ,/g' $1 | column -t -s, ; }

第一个需要两个参数才能指定分隔符。第二个是同样的事情,但它只需要一个参数,并假设分隔符是逗号,因为这是我最常用的。

csvcolumn input.csv ,

csvcomma input.csv

2
投票
debian 中存在

-n 选项。例如:

>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1        col3
      col2  

1
投票

使用 cat 和 sed。

cat filename | sed 's/[~\],/\t/g'

0
投票

如果您是 vimmer,请使用 CSV 插件,它非常漂亮


0
投票

有一个很好的工具,叫做visidata,工作速度非常快。

© www.soinside.com 2019 - 2024. All rights reserved.