Pensé que eso sort
ordenaría los prefijos comunes, pero eso no siempre sucede. Tome esta entrada por ejemplo:
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
Después sort
, esperaría que todo AT*
terminara en un trozo, pero cuando ejecuta estos datos sort
, la ==
entrada de salida . ¿Porqué es eso? No estoy especificando ninguna opción para ignorar los caracteres no alfabéticos ni nada. Justo sort dict > out
.
Mi versión de sort
viene de coreutils 8.5-1ubuntu3
.
Respuestas:
Esto preserva el orden natural de los números.
fuente
La configuración LC_ALL = C restauró el orden de clasificación tradicional en mi caso. Paquete: Coreutils Versión: 8.5-1ubuntu3
fuente
LANG=C
También funciona. Lo que me desconcierta:LANG
está configurado paraen_US.UTF-8
; ¿Por qué*
todavía se trata especial?LC_COLLATE
es la configuración específica desort
, etc.export
o incluso establecer local y posiblemente meterse con otra cosa Sólo tienes que configurar en la llamada a ordenar:LC_ALL=C sort
. Por ejemploecho -e 'a\n*\n*b\nc' | LC_ALL=C sort
, LC_ALL no se cambiará fuera de la llamada para ordenarFunciona como se esperaba para mí (en Cygwin).
sort input > output
resultados en¿Se clasifica alias a algo? tratar
\sort
también
fuente
Versión: sort (GNU coreutils) 8.26
Lo hago en línea:
O por función (cambia el archivo original):
fuente
Para proporcionar una respuesta simple basada en los comentarios de otros, eso no cambia su entorno:
o
o combinaciones de los mismos.
fuente
Con GNU sort puedes usar
--dictionary-order
:fuente