1

更新 2:

好的,我无法使其正常工作,它正在处理一个文件而不是另一个文件:

C:\cygwin\bin\sort -t"," -k5,2 c:\tmp\CI-tosplit.csv > c:\tmp\CI-DEN-sorted.csv

这似乎对数据进行了排序,但它忽略了标题,我认为 ,2 是在说 start @ line 2 它在一个文件而不是另一个文件上执行。

我要做的就是按第 5 列对 csv 文件进行排序并保留标题。

再次感谢所有输入。

更新:

好的,我现在已经为此切换到 cygwin,我正在使用以下命令:

C:\cygwin\bin>sort -t"," -k8 c:\tmp\test.csv > c:\tmp\test-sorted.csv

-t 为第 12 列设置分隔符 -k

这可行,但我无法让标题保持在原位。

任何输入都会很棒,谢谢大家。


我正在尝试使用 awk 按指定列对 CSV 进行排序,但我找不到任何有效的方法。

sort -t, -k2 - u test.csv

输入文件指定了两次。

请帮忙,我正在使用Windows BTW。

4

2 回答 2

0

看起来您使用的是 sort 而不是 awk。它有一个 -u 选项(没有空格)来表示唯一,而且 -t 选项应该有一个值(分隔符)。尝试:

sort -t, -k2 -u test.csv
于 2013-05-29T15:57:14.493 回答
0

如果其他人确实觉得这很有用,我发现按列对 csv 文件进行排序的最简单方法是使用 cygwin,以下对我有用:

sort -t"," -k5,2 c:\tmp\test.csv > c:\tmp\test-sorted.csv

-t 设置确定器 -K Columnn , 2 用于第 2 行,如果您有头输入文件输出文件

感谢所有输入的家伙。

于 2013-05-30T07:42:35.870 回答