命令行 CSV 查看器

发布于 2024-11-09 14:59:22 字数 408 浏览 0 评论 0原文

我的问题是一样的 命令行 CSV 查看器? 并且 column -s, -t 命令答案几乎是完美的 - 除了它似乎没有像我期望的那样处理空的 csv 字段。例如,给定的输入

col1,,col3
,col2,

会产生:

col1  col3
col2

但我想:

col1      col3
     col2

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

My questions is the same as
Command line CSV viewer?
and the column -s, -t command answer is almost perfect - except it doesn't seem to handle empty csv fields as I'd expect. eg given input

col1,,col3
,col2,

produces:

col1  col3
col2

but I would like:

col1      col3
     col2

Is there an option to achieve the above with column command or an alternative way to achieve this? (cygwin environment)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

虐人心 2024-11-16 14:59:22

debian 中存在 -n 选项。例如:

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

-n option exists in debian. e.g.:

>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1        col3
      col2  
似最初 2024-11-16 14:59:22

这是离优雅最远的事情,你可能已经想到并正在寻找更好的解决方案,但我通过执行一系列 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

It's the furthest thing from elegant, and it's probably something you've already thought of and are looking for a better solution, but I work around this annoyance by doing a series of sed replacements to put a whitespace in empty fields. I have these as functions in my 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, ; }

The first one takes two args to be able to specify the delimiter character. The second is the same thing but it only takes one arg and assumes the delimiter is a comma since that's most often what I use anyway.

csvcolumn input.csv ,

or

csvcomma input.csv
情徒 2024-11-16 14:59:22

使用 cat 和 sed。

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

Use cat and sed.

cat filename | sed 's/[~\],/\t/g'
ゞ花落谁相伴 2024-11-16 14:59:22

如果您是 vimmer,请使用 CSV 插件,它非常有用美丽

If you're a vimmer, use the CSV plugin, which is juuust beautiful.

何以畏孤独 2024-11-16 14:59:22

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

There is a good tool called visidata, works really fast.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文