Я думал, что это sort
будет сортировать общие префиксы вместе, но это не всегда происходит. Возьмите этот вход, например:
AT0S*eightieths
AT0S*eyetooth's
AT*ad
AT*Ad
AT*AD
AT*Eydie
AT*eyed
ATF*adv
ATF*ATV
ATF*edify
ATF*Ediva
ATFKT*advocate
ATFKTNK*advocating
ATFKT*outfought
ATFKTS*advocates
ATHT*whitehead
ATHT*Whitehead
AT*id
AT*I'd
AT*Ito
AT*IUD
ATJ*adage
ATNXNS*attention's
ATNXNS*attenuation's
ATNXNS*autoignition's
AT*oat
AT*OD
AT*outweigh
AT*owed
ATP0K*idiopathic
ATP*adobe
ATT*wighted
ATT*witted
ATT*wooded
AT*UT
AT*Uta
AT*wowed
AT*Wyatt
ATX*atishoo
После sort
этого я ожидал, что все AT*
закончится в одном куске, но когда вы пропустите эти данные sort
, появится выходной ==
ввод. Почему это? Я не указываю никакой опции, чтобы игнорировать не алфавитные символы или что-то еще. Так же sort dict > out
.
Моя версия sort
исходит от coreutils 8.5-1ubuntu3
.
Ответы:
Это сохраняет естественный порядок чисел.
источник
Установка LC_ALL = C восстановила традиционный порядок сортировки в моем случае. Пакет: coreutils Версия: 8.5-1ubuntu3
источник
LANG=C
тоже работает. Что меня озадачивает:LANG
настроено наen_US.UTF-8
; почему до*
сих пор лечатся ??LC_COLLATE
это особая настройка иsort
т. д.export
или даже устанавливать локальные и, возможно, связываться с чем-то еще. Просто установите его в вызове рода:LC_ALL=C sort
. Напримерecho -e 'a\n*\n*b\nc' | LC_ALL=C sort
, LC_ALL не будет изменен вне вызова сортировкиЭто работает, как и ожидалось для меня (на Cygwin).
sort input > output
результаты вСортируется ли что-то? пытаться
\sort
Также
источник
Версия: sort (GNU coreutils) 8.26
Я делаю это в строке:
Или по функции (изменяет исходный файл):
источник
Чтобы предоставить простой ответ, основанный на комментариях других, это не изменит вашу среду:
или
или их комбинации.
источник
С сортировкой GNU вы можете использовать
--dictionary-order
:источник