Eu pensei que sort
iria ordenar prefixos comuns, mas isso nem sempre acontece. Tome esta entrada por exemplo:
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
Depois sort
, eu esperaria que tudo AT*
acabasse em um pedaço, mas quando você executa esses dados sort
, a ==
entrada de saída . Por que é que? Não estou especificando nenhuma opção para ignorar caracteres não alfabéticos ou algo assim. Apenas sort dict > out
.
Minha versão sort
vem coreutils 8.5-1ubuntu3
.
Respostas:
Isso preserva a ordem natural dos números.
fonte
Definir LC_ALL = C restaurou a ordem de classificação tradicional no meu caso. Pacote: coreutils Versão: 8.5-1ubuntu3
fonte
LANG=C
também funciona. O que me intriga:LANG
está definido comoen_US.UTF-8
; por que*
ainda é tratado especial ??LC_COLLATE
é a configuração específica parasort
etc.export
ou mesmo definir local e possivelmente mexer com outra coisa. Basta configurá-lo na chamada para espécie:LC_ALL=C sort
. Por exemploecho -e 'a\n*\n*b\nc' | LC_ALL=C sort
, LC_ALL não será alterado fora da chamada para classificaçãoFunciona como esperado para mim (no cygwin).
sort input > output
resulta emA classificação é alias de alguma coisa? experimentar
\sort
Além disso
fonte
Versão: sort (GNU coreutils) 8.26
Eu faço isso em linha:
Ou por função (altera o arquivo original):
fonte
Para fornecer uma resposta simples com base nos comentários de outras pessoas, isso não muda seu ambiente:
ou
ou combinações dos mesmos.
fonte
Com o GNU sort você pode usar
--dictionary-order
:fonte