有没有办法使用一些shell命令基于第一列对csv文件进行排序?
我有超过150k行的这个巨大的文件,因此我可以在excel中做到这一点:(有替代方法吗?
答案 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
。安装csvkit
(如果尚未安装)。
brew install csvkit
按第一列对CSV排序。
csvsort -c 1 original.csv > sorted.csv