我的问题与之相同
Command line CSV viewer?
并且column -s, -t
命令答案几乎是完美的 - 除了它似乎没有像我期望的那样处理空的csv字段。例如给定输入
col1,,col3
,col2,
产生
col1 col3
col2
但我想:
col1 col3
col2
是否可以选择使用column命令或其他方法来实现上述目的? (cygwin环境)
答案 0 :(得分: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, ; }
第一个需要两个args才能指定分隔符。第二个是相同的东西,但它只需要一个arg并假定分隔符是一个逗号,因为这通常是我使用的。
csvcolumn input.csv ,
或
csvcomma input.csv
答案 1 :(得分:2)
-n选项。 e.g:
>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1 col3
col2
答案 2 :(得分:1)
使用cat and sed。
cat filename | sed 's/[~\],/\t/g'
答案 3 :(得分:0)
如果您是一名游客,请使用CSV plugin,即beautiful。{{3}}。