La orden sort lee líneas completas, las ordena según las reglas de comparación seleccionadas y escribe el resultado en la salida estándar. No modifica un archivo de entrada salvo que elijas explícitamente una operación de salida.
Text-Fu · Lección 12
sort
Aprende a ordenar líneas de texto por valores léxicos, numéricos o de campos seleccionados con sort.
Ordenar líneas completas
Considera animals.txt:
dog
cow
cat
elephant
bird
Ordena las líneas en orden ascendente:
$ sort animals.txt
bird
cat
cow
dog
elephant
La ordenación de texto sigue la configuración regional actual, que puede afectar a mayúsculas, acentos y signos de puntuación. Usa una configuración uniforme como LC_ALL=C cuando un script requiera una intercalación reproducible basada en bytes:
$ LC_ALL=C sort animals.txt
¿Qué hace sort animals.txt sin una opción de clave o numérica?
Invertir el resultado
Añade -r para invertir el resultado de la comparación:
$ sort -r animals.txt
elephant
dog
cow
cat
bird
¿Qué orden clasifica animals.txt en orden inverso?
Comparar números
El orden léxico compara caracteres, por lo que 10 suele aparecer antes que 2. Usa -n para una comparación numérica normal:
$ printf '10\n2\n30\n' | sort -n
2
10
30
Combina opciones cuando sea necesario. sort -nr scores.txt compara numéricamente y coloca primero los valores mayores.
¿Qué orden clasifica las líneas numéricas de scores.txt de mayor a menor?
Ordenar por un campo
Usa -k START[,END] para elegir una clave. De forma predeterminada, los campos se separan mediante secuencias de espacios en blanco. Para registros separados por dos puntos, usa -t ':':
$ printf 'alice:30\nbob:8\ncarol:20\n' | sort -t ':' -k 2,2n
bob:8
carol:20
alice:30
Aquí, -t ':' selecciona el delimitador, -k 2,2 limita la clave al campo 2 y la n adjunta compara esa clave numéricamente. Sin el ,2 final, una clave que comienza en el campo 2 suele continuar hasta el final de la línea.
¿Qué orden clasifica users.txt numéricamente solo por su segundo campo separado por dos puntos?
Eliminar duplicados y guardar la salida
Usa -u para generar una línea por cada clave de comparación igual:
$ sort -u names.txt
Esto ordena y elimina duplicados según las reglas de comparación seleccionadas. Si solo quieres eliminar duplicados adyacentes de datos ya ordenados, la orden uniq, que se explica más adelante, puede hacerlo.
Para escribir el resultado en un archivo, una redirección normal sirve cuando el destino difiere de la entrada:
$ sort names.txt > names-sorted.txt
No ejecutes sort names.txt > names.txt; el shell trunca la entrada antes de que sort la lea. En GNU, sort -o names.txt names.txt gestiona su propia salida de forma segura cuando quieres usar deliberadamente la misma ruta:
$ sort -o names.txt names.txt
Conserva una copia de seguridad o escribe y comprueba un resultado separado cuando los datos originales sean importantes.
En GNU/Linux, ¿qué orden pide a sort que escriba de forma segura el resultado ordenado en names.txt sin que una redirección del shell lo trunque primero?
Para practicar la ordenación y el análisis de datos orientados a líneas, prueba estos laboratorios prácticos:
- Orden sort de Linux: ordenación de texto - Este laboratorio ofrece una introducción directa a
sortpara practicar distintas formas de ordenar líneas de archivos de texto, incluidos los órdenes ascendente y descendente. - Recuento de palabras y ordenación - En este desafío aplicarás tus conocimientos de ordenación junto con el recuento de palabras para analizar datos de texto, encontrar patrones frecuentes y ordenar datos de manera eficiente.
Lección completada
Has completado sort
Ahora puedes elegir reglas de comparación y destinos para el texto ordenado.
Ordena líneas completas con una configuración regional explícita cuando la reproducibilidad sea importante.
Invierte los resultados con
-r.Compara valores numéricos con
-n.Selecciona una clave de campo acotada con
-ty-k.Elimina duplicados o guarda la salida sin truncar la entrada.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita