Sob o C locale, sort classifica na ordem dada pelos bytes brutos; na en_US locale, sort ordena a ordem lexicográfica culturalmente apropriada:
-
No
Clocale:http://zclassifica antes dehttps://aporque':'(58) é menor que's'(115). -
No
en_USlocale:https://aclassifica antes dehttp://zporque a ordem lexicográfica do inglês americano ignora os separadores, de modo que as sequências são agrupadas como se fossemhttpsaehttpz, e obviamentesvem antes dez. / p>
man 1 sort diz:
*** 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.
Para alterar apenas a ordem de classificação, você pode definir a variável de ambiente LC_COLLATE :
$ echo -e 'ab:d\nabc:d' | LC_COLLATE=en_US.UTF-8 sort
abc:d
ab:d
$ echo -e 'ab:d\nabc:d' | LC_COLLATE=C.UTF-8 sort
ab:d
abc:d
Nota: a variável de ambiente LC_ALL tem precedência sobre as variáveis LC_ detalhadas.