Неожиданный результат от сортировки GNU
Вопрос
Когда я пытаюсь сортировать следующий текстовый файл «ввод»:
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 Должен помочь