Сортировка csv файла по 5-м столбцу с помощью 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

Как мне это сделать? Кажется, он не сортирует его вообще.

Ответ 1

Это то, что вам нужно, чтобы оно было

# 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

Ответ 2

Сорт GNU чувствителен к локали, что может вызвать странность. Попробуйте следующее и посмотрите, не имеет значения:

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