Сортировка БОЛЬШОГО файла по двум столбцам - PullRequest
1 голос
/ 21 ноября 2011

У меня большой файл, который не помещается в памяти, и который я хотел бы отсортировать.Файл состоит из двух столбцов и нескольких записей.Первый столбец представляет собой числовой тип ~ 10 цифр, а второй столбец представляет собой строку, содержащую любой печатный символ (для сортировки в соответствии с кодом ASCII).

Мне нужно отсортировать запись на основе числового поля, но вВ случае, если две записи имеют одинаковое числовое поле, которое я хотел бы отсортировать на основе строки, то есть второго столбца.

Для этого я пытаюсь сортировать, используя сортировку Linux, которая использует внешнюю сортировку, но проблема не в сортировке строкна основе кода ASCII.Любая идея?!!

1 Ответ

4 голосов
/ 21 ноября 2011

Утилита сортировки GNU сортирует в соответствии с текущей локалью.См. Комментарий на странице man:

   *** WARNING *** The locale specified by the environment affects sort order.  Set LC_ALL=C to get the traditional sort order that uses native byte values.

. Вы можете использовать флаг -n для числовой сортировки или -k для сочетания числовых и нечисловых сортировок.Например:

sort -k1 -k2n

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

...