2010-11-20 5 views
2

Я пытаюсь сортировать таблицу на основе первого значения от наименьшего до наибольшего с помощью команды сортировки gnu-coreutils.сортировка с сортировкой coreutil

Моя таблица выглядит следующим образом:

file.txt

100,0.8,0.323, ... some more data 
2,0.323,0,323, ... 
4, ... 
53, ... 
. 
. 
121, ... 

Я попытался сделать следующее:

sort -n -k 1 file.txt 

, но я получаю что-то вроде ...

10,0,10,10 
100,9,1,10 
101,9,2,11 
102,9,3,12 
103,9,4,13 
104,9,5,14 
105,9,6,15 
106,9,7,16 
107,9,8,17 
108,9,9,18 
21,1,10,11 
32,2,10,12 
43,3,10,13 
54,4,10,14 

Я хочу логический порядковый номер.

Тед.

+1

22,33,44 выглядит хорошо для меня - в каком порядке вы хотели, чтобы они появлялись? –

+0

Ах, я забыл упомянуть .. ну, есть вещи, такие как: 21,22,23,24 ... до 33, и он не показывает их вверх ... они, вероятно, где-то еще в отсортированном файле , – Flethuseo

+0

Я также хотел спросить, моя команда сортировки по умолчанию поступает из/usr/bin/sort, но у этого сортировки нет случайного сортировки, который мне нравится использовать. Я хочу использовать сортировку из моей установки coreutils, но я не хочу добавлять все основные утилиты на свой путь. Я пробовал это .. но это не сработало: alias sort = '/ sw/lib/coreutils/bin/sort' Любые идеи? – Flethuseo

ответ

1

Правильный вызов sort может выглядеть

$ sort -n -t , -k 1,1 file.txt 

Объяснение:

  • -n сортировать численно
  • -t , запятая разделитель полей
  • -k 1,1 сортировать по первому полю
  • file.txt входной файл

Призывая выше данной программы дает

10,0,10,10
21,1,10,11
32,2,10,12
43 , 3,10,13
54,4,10,14
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9, 9,18

При сортировке по полям очень удобно использовать опцию --debug, чтобы убедиться, что сортировка работает должным образом.

 Смежные вопросы

  • Нет связанных вопросов^_^