El comando sort en Linux es una herramienta útil para ordenar líneas de archivos de texto de diferentes formas.
Puede ordenar alfabéticamente, en orden inverso, por número, entre otros criterios.
También ofrece opciones para ignorar la distinción entre mayúsculas y minúsculas, comprobar si un archivo está ordenado y eliminar duplicados. Además, puede ordenar por meses, por elementos que no están al inicio de la línea, e incluso archivos CSV. A continuación, se presentan ejemplos de uso del comando sort en Linux. También se proporcionan recursos adicionales y comandos relacionados.
Comando sort Linux: concepto y funcionalidades
El comando sort en Linux es una herramienta muy útil para ordenar líneas de texto en archivos de diversas formas. A continuación, se detallan algunas de las funcionalidades más destacadas de este comando.
Ordenación alfabética de líneas de texto
Una de las funcionalidades básicas del comando sort es la capacidad de ordenar alfabéticamente las líneas de un archivo de texto. Esto se logra ejecutando el comando y proporcionando el nombre del archivo como argumento. De esta manera, el contenido del archivo se escribirá en orden alfabético en la salida estándar.
Orden inverso en el comando sort
El comando sort también permite ordenar las líneas de texto en orden inverso. Esto se logra utilizando la opción -r al ejecutar el comando. Al utilizar esta opción, las líneas de texto se mostrarán en orden descendente en la salida estándar.
Orden numérico en el comando sort
Además de ordenar alfabéticamente, el comando sort puede ordenar las líneas de texto por sus valores numéricos. Para ello, se utiliza la opción -n al ejecutar el comando. Esto es especialmente útil cuando se necesita ordenar números contenidos en un archivo de texto.
Ignorar distinción entre mayúsculas y minúsculas
El comando sort permite ordenar las líneas de texto sin tener en cuenta la distinción entre mayúsculas y minúsculas. Para lograr esto, se utiliza la opción -f al ejecutar el comando. De esta manera, las líneas de texto con caracteres en mayúsculas y minúsculas se considerarán iguales en el proceso de ordenación.
Comprobar si un archivo está ordenado
El comando sort también proporciona la opción -c, que permite verificar si un archivo dado ya está ordenado. Al ejecutar el comando con esta opción, se mostrará un mensaje indicando si el archivo está ordenado o no. Esto puede ser útil para verificar la coherencia de los datos en un archivo antes de aplicar cualquier operación de ordenación.
Ordenar y eliminar duplicados
Mediante el uso de la opción -u, el comando sort puede ordenar las líneas de texto y eliminar duplicados en un solo paso. Esto es especialmente útil para tener una lista de elementos sin repeticiones y en orden. Al ejecutar el comando con esta opción, solo se mostrará una ocurrencia de cada línea de texto y se eliminarán las duplicadas.
Ordenar por meses usando el comando sort
El comando sort también ofrece la opción -M para ordenar las líneas de texto según los meses del año. Esta opción es útil cuando se tienen datos relacionados con fechas y se desea ordenarlos cronológicamente. Al utilizar la opción -M, el comando sort interpretará las líneas de texto como fechas y las ordenará en función de los meses.
Ordenar por elementos no al inicio de la línea
El comando sort permite ordenar las líneas de texto teniendo en cuenta elementos que no están al inicio de cada línea. Para ello, se utiliza la opción -k seguida de un número para especificar el campo que se utilizará como clave de ordenación. Con esta funcionalidad, es posible ordenar líneas de texto por elementos específicos que no necesariamente están en la posición inicial.
Ordenar archivos CSV usando el comando sort
El comando sort también es capaz de ordenar archivos CSV (Comma-Separated Values). Esta opción es especialmente útil cuando se tienen datos tabulares en un archivo CSV y se desea ordenarlos según una columna específica. Para utilizar esta funcionalidad, se utiliza la opción -t seguida del delimitador de campo deseado, y luego la opción -k seguida del número de columna por la cual se desea ordenar.
Ejemplos de uso del comando sort en Linux
El comando sort en Linux ofrece diversas opciones para ordenar líneas de archivos de texto.
A continuación, se presentan algunos ejemplos prácticos de uso.
Ordenar por cantidad de líneas
Una de las funcionalidades más comunes es ordenar un archivo de texto por la cantidad de líneas. Esto se logra utilizando la opción -n junto con el comando sort.
Por ejemplo, si tenemos un archivo llamado «datos.txt» con las siguientes líneas:
Juan María Carlos Ana
Al ejecutar el siguiente comando:
sort -n datos.txt
La salida sería:
Ana Carlos María Juan
Está claro que ser autodidacta es una de las mejores cualidades que podría tener cualquier programador.
Sin embargo, si quieres acelerar al máximo tu aprendizaje, te recomendamos que veas esta lista con los mejores cursos para aprender Linux desde cero. Los hemos seleccionado y analizado minuciosamente para ayudarte a elegir el ideal.
Ordenar por nombre de archivo de forma inversa
Es posible ordenar una lista de nombres de archivo en forma inversa utilizando la opción -k junto con la opción -r.
Supongamos que tenemos los siguientes archivos en un directorio:
archivo1.txt archivo2.txt archivo3.txt
Si ejecutamos el siguiente comando:
ls | sort -k 1,1 -r
Obtendremos la siguiente salida:
archivo3.txt archivo2.txt archivo1.txt
Ordenar un listado con diferentes magnitudes
El comando sort también puede ordenar un listado con diferentes magnitudes, como tamaños de archivos expresados en bytes, kilobytes o megabytes.
Supongamos que tenemos un archivo llamado «listado.txt» con la siguiente lista de archivos y sus respectivos tamaños:
archivo1.txt 100MB archivo2.txt 2KB archivo3.txt 1GB
Para ordenar este listado por tamaño de archivo, ejecutaríamos el siguiente comando:
sort -k 2,2h listado.txt
La salida sería:
archivo2.txt 2KB archivo1.txt 100MB archivo3.txt 1GB
Estos son solo algunos ejemplos de uso del comando sort en Linux. Su versatilidad y variedad de opciones permiten adaptarse a diferentes necesidades de ordenación en archivos de texto.