Вопрос

Когда я пытаюсь сортировать следующий текстовый файл «ввод»:

test1 3   
test3 2
test 4

с командой

sort input

Выходной вывод точно вход. Вот вывод

od -bc input

:

0000000 164 145 163 164 061 011 063 012 164 145 163 164 063 011 062 012
          t   e   s   t   1  \t   3  \n   t   e   s   t   3  \t   2  \n
0000020 164 145 163 164 011 064 012
          t   e   s   t  \t   4  \n
0000027

Это просто вкладка разделена файл с двумя столбцами. Когда я делаю

sort -k 2

Выходные изменения в

test3 2
test1 3
test 4

Что я ожидал. Но если я сделаю

sort -k 1

Ничто не изменится в отношении ввода, тогда как я ожидал, что «тест», чтобы разобраться до «TEST1». Наконец, если я сделаю

cat input | cut -f 1 | sort

я получил

test
test1
test3

как и ожидалось. Есть ли логическое объяснение для этого? Что именно предполагается сделать по умолчанию, что-то вроде:

sort -k 1

?

Моя версия сорта:

sort (GNU coreutils) 7.4

Нет правильного решения

Другие советы

От страницы человека:

* ПРЕДУПРЕЖДЕНИЕ * Локаль, указанный окружающей средой, влияет на порядок сортировки. Установите LC_ALL = C, чтобы получить традиционный порядок сортировки, который использует собственные значения байтов.

Ну, это похоже Экспорт lc_all = c Должен помочь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top