使用bash按第5列排序csv文件

时间:2013-09-05 17:11:58

标签: linux bash

该文件看起来像

5.1,3.5,1.4,0.2,Banana
4.9,3.0,1.4,0.6,Apple
4.8,2.8,1.3,1.2,Apple

我需要它

4.9,3.0,1.4,0.2,Apple
4.8,2.8,1.3,1.2,Apple
5.1,3.5,1.4,0.2,Banana

我一直在尝试使用

sort -t, -k5 file.csv > sorted.csv

所有这一切都是为了它

5.1,3.5,1.4,0.2,Banana
4.8,2.8,1.3,1.2,Apple
4.9,3.0,1.4,0.6,Apple

我怎么做到这样?它似乎根本没有排序。

2 个答案:

答案 0 :(得分:7)

这是你需要的吗

# sort -t . -nrk2 sorted.csv 
4.9,3.0,1.4,0.6,Apple
4.8,2.8,1.3,1.2,Apple
5.1,3.5,1.4,0.2,Banana

答案 1 :(得分:4)

GNU排序是区域设置敏感的,这可能会导致奇怪。尝试以下操作,看看它是否有所作为:

LC_ALL=C sort -t, -k5 file.csv > sorted.csv