Traté de ordenar el contenido de un archivo en el escritorio de Ubuntu 14.04 (Trusty Tahr). En mi caso, el resultado esperado debería ser el mismo que el contenido original, pero el resultado real no lo es. ¿Por qué?
# cat test.txt
a++-a
a++-b
a++-c
ab
ac
# cat test.txt | sort
a++-a
ab
a++-b
ac
a++-c
command-line
sort
usuario2909884
fuente
fuente
cat
.cat test.txt | sort
porsort test.txt
:)cat
para comenzar. Por ejemplocat FILE | grep dev | sort
, solo se mostrarán líneas con "dev" en ellas (en orden). El usosort FILE | grep dev
produce la misma salida pero de color.Respuestas:
Puede usar
LC_ALL
variable, configúreloLC_ALL=C
antes de llamarsort
Lea esta respuesta, si quiere saber qué es esto mágicamente
LC_ALL=C
. Aquí hay un breve resumen:Además, como señaló @KenMollerup, cite de
man sort
Entonces, cuando use ordenar con
LC_ALL=C
, ordene los símbolos de comparación por byte. Desort
lo contrario , ignorará todos los caracteres no alfanuméricos.fuente
man sort
. No me di cuentaLa ordenación usa la ordenación alfabética y numérica, igual que nosotros, los caracteres especiales como + - <> ... se ignoran, los números se tratan numéricamente, así que 1, 2, 3 ... viene antes del 11, 12 1066 1104 - ¡mira!
Entonces su lista se ve como: aa, ab, ab, ac, ac
fuente
man sort
, agregar ejemplos.