2

我正在使用csvfix根据第二列中的整数(计数器)值对 CSV 文件进行排序。然而,csvfix 似乎在文件中的所有字段周围加上双引号,将它们转换为字符串,然后再执行排序。结果是行按字符串值排序,因此“1000”排在“2”之前。

有一个命令行选项-smq应该应用“智能引用”,但这对我没有帮助。如果我使用 command csvfix echo -smq file.csv,则输出在数字字段周围没有引号,但是当我将其输入csvfix sort -f 2 file.csv时,文件将不带引号写入,但仍按“字符串顺序”排序。我是否在排序命令中包含 -smq 标志没有区别。

此外,我希望 csvfix 忽略第一行字符串标题。Csvfix 问题跟踪声称这已经实现,但我只能找到-ifn似乎完全切断标题行的标志。

这些似乎是这个工具的基本功能,所以我可能遗漏了一些非常简单的东西。希望这里有人使用过 csvfix 并想通了。

4

1 回答 1

1

根据csvfix 的在线文档, sort 有一个N用于数字排序的选项:

csvfix sort -f 2:N file.csv 

话虽如此,CSV对于文本操作来说并不是一种特别好的格式。如果可能的话,您最好选择 DSV(分隔符分隔值),例如 Tab 或 Pipe 分隔,这样您就可以简单地将输出通过管道传输到sort,它具有足够的按字段排序的能力,使用您需要的任何整理方法。

于 2012-05-27T17:22:05.430 回答