La sort
utilidad en Ubuntu 10.04 (Lucid) siempre ordena por mayúsculas y minúsculas, al igual que si lo especificas --ignore-case
.
The two sort just give the same result:
echo -e "c\nb\nB\na" | sort
echo -e "c\nb\nB\na" | sort --ignore-case
Pero a veces quiero ordenar por mayúsculas y minúsculas, por lo que las letras mayúsculas son lo primero, luego las minúsculas. ¿Es posible?
echo $'B\nÄ\nb\na' | LC_COLLATE=C sort
. ¿No debería considerarse un error el hecho de que GNUsort
con unC
entorno no local siempre realiza una clasificación sensible a mayúsculas y minúsculas ?C.UTF-8
locale (LC_COLLATE=C.UTF-8
) clasificará entre mayúsculas y minúsculas, mientras que trata los caracteres UTF-8 no ascii "normalmente". Desafortunadamente, no está disponible en sentido ascendente en glibc y solo parcheado por Debian, Ubuntu y derivados.Curiosamente, hay otro orden de clasificación disponible como este:
que pone la letra mayúscula antes de su letra minúscula correspondiente.
Aquí hay una comparación de sus salidas (agregué "d" y "D") en la
en_US.UTF-8
configuración regional (excepto donde se reemplaza):echo -e "d\nD\nc\nb\nB\na" | sort
echo -e "d\nD\nc\nb\nB\na" | sort --ignore-case
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort --ignore-case
Salida:
fuente
sort
v5.93
(viene con OS X 10.9.3 (!)) Yv8.13
, pero NO env8.21
yv8.22
. Supongo que los resultados de 2. y 4. todavía pueden considerarse equivalentes (pero eso obviamente cambiaría con la adición de caracteres extranjeros).