基于交互式控制台的 CSV 编辑器

Pen*_*rse 13 csv command-line

尽管用于在控制台上编辑 CSV 文件的电子表格应用程序曾经是个人计算机上最早的杀手级应用程序之一,但仍在积极维护的应用程序很少,有关它们的文档甚至更少。

在网上、联机帮助页和源代码上进行了大量搜索后,我最终得到了以下三个应用程序,它们都有根本的缺点:

  • sc:缩写。用于电子表格计算器;带有 vi 键绑定的好工具,但在导出为分隔符分隔格式时,它不会将包含分隔符的字符串放入引号中,并且无法正确导入 csv 文件,即所有数字都被解释为字符串
  • GNU oleo:自 2001 年以来似乎不再积极维护,因此没有适用于主要 linux 发行版的软件包
  • 茶壶:为各种操作系统提供软件包,但使用例如违反直觉的单元格命名(行和列的数字,即 11 似乎是第 1 行,第 1 列)和 FLTK GUI 的多余代码

各种 Emacs 模式也不能很好地引用包含分隔符的字符串,或者需要更多的输入来输入表的脚手架。

因此,我将非常感谢克服这些缺点之一或对另一个基于控制台的 CSV 编辑器的任何提示。它实际上不需要做任何计算,只需编辑单元格或列和行。

use*_*598 11

通常希望 CSV 编辑器能够识别数字,仅在需要时才使用引号字符串,在引号字符串中允许分隔符,并且不会折叠空单元格。所以,这在屏幕上

1                      2          3
col-one                           col,three
                       col two
This is a long string. 1.23456789 3.14
Run Code Online (Sandbox Code Playgroud)

应该在文件中与此相关

1,2,3
col-one,,"col,three"
,"col two",
"This is a long string.",1.23456789,3.14
Run Code Online (Sandbox Code Playgroud)

Oleo 已经好几年没有维护了。我在最近的 Debian 系统上安装了一个旧包,发现它很笨拙而且有很多问题。操作需要的击键次数超过通常的击键次数。所有字符串都必须加引号,您必须手动进行。CSV 导入过滤器无法处理字符串中的逗号。长精度数不保留其原始形式(例如 1.23456789 变为 1.234567889999999)。该进程有时会失控,因此无法从命令行中止。

MacroCALC、Teapot 和 SC 似乎是唯一仍在维护的 CLI 电子表格。

MacroCALC无法干净地导入或导出 CSV 文件。

茶壶有点不寻常,但它很容易使用,手册是一个快速阅读。CSV 的导入/导出很简单。它有两个主要的怪癖。首先,虽然它自动引用字符串,但它总是引用所有字符串。其次,它将截断/扩展所有十进制数到默认精度。FLTK 接口是可操作的,但有问题。

SC 快速且稳定。它的操作与 vi 类似,并且对初学者非常友好。在 SC 格式和 CSV 之间转换需要外部程序。该psc工具(仅限 CSV -> SC)与 SC 一起安装,其工作方式如下:

cat file.csv | psc -k -d, | sc
Run Code Online (Sandbox Code Playgroud)

编辑后,使用Put命令保存文件,然后使用ssconvertGnumeric 附带的实用程序(仅限 SC -> CSV):

ssconvert file.sc file.csv
Run Code Online (Sandbox Code Playgroud)

我尝试用psc-来回处理各种事情,ssconvert这个过程看起来很稳定。正确处理数字和字符串。

编辑 CSV 文件的另一种方法是使用带有适当插件的文本编辑器。双方的EmacsVim的有他们,虽然这些Vim版本速度更快,有更多的功能。这些提供突出显示、列对齐和块操作。我发现两者都非常缓慢且有问题。


小智 5

scim 是我见过的最好的,可以本地导入 csv 和导出 csv。

https://github.com/andmarti1424/scim

  • 该项目已移至 https://github.com/andmarti1424/sc-im (2认同)