
Estoy buscando una solución para ordenar en Postgres, pero parece ser más un problema de intercalación y, por lo tanto, hago la pregunta para el comando de clasificación estándar de Unix.
Tengo los siguientes datos:
A_A1
A\A2
A_A2
A\A1
después de ordenar obtengo:
cat test.txt |sort
A_A1
A\A1
A_A2
A\A2
pero yo quiero:
A_A1
A_A2
A\A1
A\A2
También lo intenté LANG=C cat...
pero fue en vano. Entonces, ¿qué regla de clasificación me permitiría no ignorar los caracteres especiales?
Respuesta1
De man sort
:
Set LC_ALL=C to get the traditional sort order that uses native byte values.
Entonces:
$ LC_ALL=C sort test.txt
A\A1
A\A2
A_A1
A_A2
por lo que la configuración regional C ordena según el valor del byte.
Necesitas hacer
$ cat test.txt | LC_ALL=C sort
si desea canalizarlo así (pero siempre intente usar la versión del nombre del archivo directamente si está disponible).
La variable de entorno principal que afecta esto es LC_COLLATE
. Sin embargo, si LC_ALL
se establece, prevalece sobre todos LC_
los valores específicos. Si ni LC_ALL
ni LC_COLLATE
están configurados, vuelve a caer en LANG
. Siesono está configurado, su valor predeterminado es locale C
.