неожиданный результат вида гну

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

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
6
задан Chen Levy 22 January 2014 в 13:54
поделиться

1 ответ

Из страниц руководства:

* WARNING * Локаль, заданная средой, влияет на порядок сортировки . Установите LC_ALL = C, чтобы получить традиционный порядок сортировки, в котором используются собственные байтовые значения.

Кажется, экспорт LC_ALL = C должен помочь

7
ответ дан 17 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: