[英]Sorting on a numerical value using csvfix for linux - turns numbers to strings
我正在使用csvfix根据第二列中的整数(计数器)值对CSV文件进行排序。 但是,似乎csvfix在执行排序之前将双引号放在文件中的所有字段周围,并将它们转换为字符串。 结果是按字符串值对行进行排序,以使“ 1000”位于“ 2”之前。
有一个命令行选项-smq
应该应用“智能引号”,但这对我没有帮助。 如果我使用命令csvfix echo -smq file.csv
,则输出在数字字段周围没有引号,但是当我将其通过管道csvfix sort -f 2 file.csv
到csvfix sort -f 2 file.csv
,文件被写成不带引号,但仍按“字符串顺序”排序”。 是否在排序命令中包含-smq标志都没有区别。
另外,我希望csvfix忽略字符串标题的第一行。 Csvfix问题跟踪声称这已经实现,但是我只能找到-ifn
标志,它似乎完全切掉了标题行。
这些似乎是此工具的基本功能,因此我可能缺少一些非常简单的东西。 希望有人在这里使用csvfix并弄清楚。
根据csvfix的在线文档 ,sort具有用于数字排序的N
选项:
csvfix sort -f 2:N file.csv
话虽这么说,CSV 并不是用于文本操作的特别好的格式 。 如果可能的话,最好选择DSV(定界符分隔的值),例如Tab或Pipe split,以便您可以简单地将输出通过管道传递给sort
,它具有使用所需的任何排序方法进行按字段排序的足够功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.