sort
100%

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.

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.

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:

  1. Orden sort de Linux: ordenación de texto - Este laboratorio ofrece una introducción directa a sort para practicar distintas formas de ordenar líneas de archivos de texto, incluidos los órdenes ascendente y descendente.
  2. 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 -t y -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
Siguiente Lección
Volver a Text-Fu