сортировка с помощью Coreutil - PullRequest
2 голосов
/ 20 ноября 2010

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

Мой стол выглядит примерно так:

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 Ответ

1 голос
/ 02 декабря 2011

Правильный вызов 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, просто чтобы убедиться, что сортировка работает должным образом.

...