根据第一列对CSV文件进行排序

时间:2014-10-08 04:27:06

标签: bash shell sorting unix csv

有没有办法使用一些shell命令基于第一列对csv文件进行排序?

我有超过150k行的这个巨大的文件,因此我可以在excel中做到这一点:(有替代方法吗?

3 个答案:

答案 0 :(得分:38)

sort -k1 -n -t, filename应该可以解决问题。

-k1按第1列排序。

-n按数字排序而不是按字典顺序排序(因此“11”将不会出现在“2,3 ......”之前)。

-t,将分隔符(文件中的值分隔的内容)设置为,,因为您的文件是逗号分隔的。

答案 1 :(得分:3)

我不知道为什么上述解决方案在我的情况下不起作用。

15,5
17,2
18,6
19,4
8,25
8,90
9,47
9,49
10,67
10,90
13,96
159,9

然而这个命令解决了我的问题。

sort -t"," -k1n,1 fileName

答案 2 :(得分:0)

使用csvsort

  1. 安装csvkit(如果尚未安装)。

    brew install csvkit
    
  2. 按第一列对CSV排序。

    csvsort -c 1 original.csv > sorted.csv