Tutorial del comando «sort» de Linux y Unix (con ejemplos)

Traduccion al Español de un tutorial en Inglés de George Ornbo sobre el uso de sort, un comando para ordenar líneas de archivos de texto en Linux y Unix. Ejemplos practicos de como el comando sort puede ordenar alfabéticamente, en orden inverso, por númeración, en mayúsculas y minúsculas, etc.

LINUX / UNIXSORTtraduccion
16 junio, 2021 Aprende a utilizar el comando sort de Linux/Unix
16 junio, 2021 Aprende a utilizar el comando sort de Linux/Unix

Aprende a usar el comando de LINUX / UNIX «sort», para ordenar listados alfabéticamente, por orden inverso, por orden númerico, etc. Traducido de Inglés a Español de forma gratuita por Ibidem Group. Tiempo estimado de lectura: 5 minutos.

Artículo original de George Ornbo, publicado el 16/11/2019 en
https://shapeshed.com/unix-sort/

* * *


Índice de contenidos

 

Terminal showing sort man page

 

¿Qué es el comando sort?

El comando sort (ordenar) es un comando para ordenar líneas de archivos de texto. Permite ordenar alfabéticamente, en orden inverso, por número, por mes y también puede eliminar duplicados. El comando sort también puede ordenar por elementos que no estén al principio de la línea, ignorar la sensibilidad a las mayúsculas y minúsculas y devolver si un archivo está ordenado o no.

Cómo ordenar alfabéticamente

El comando sort ordenará las líneas alfabéticamente por defecto. Al ejecutar sort filename se escribe el contenido del nombre del archivo en orden alfabético en la salida estándar.

Supongamos que existe un archivo con la siguiente lista de bandas de metal que necesita ser clasificada en orden alfabético. El archivo se guarda como bands.txt.

Motörhead
Sepultura
Carcasa
Opeth

El comando sort nos permite ordenar el archivo alfabéticamente.

sort bandas.txt
ACDC
Carcass
Motörhead
Opeth
Sepultura

Cómo clasificar en orden inverso

Para ordenar en orden inverso añada a sort la opción -r . Esto ordenará en orden inverso y mostrará el resultado deseado.

Utilizando la misma lista de bandas metálicas del ejemplo anterior, este archivo puede clasificarse en orden inverso con la opción -r.

sort-r bandas.txt
Sepultura
Opeth
Motörhead
Carcass
ACDC

Cómo ordenar por número

Para ordenar por número use la opción -n. Esto ordenará de menor a mayor número y mostrará el resultado en la pantalla.

Supongamos que existe un archivo con una lista de prendas de vestir que tiene un número al principio de la línea y que necesita ser ordenado numéricamente. El archivo se guarda como clothes.txt.

3. Zapatos marrones
5. Corbata azul
1. Camisa blanca
11. Pantalones vaqueros
4. Calzoncillos

Al añadir la opción -n el archivo se ordena numéricamente.

sort-n ropa.txt
1. Camisa blanca
3. Zapatos marrones
4. Calzoncillos
5. Corbata azul
11. Pantalones vaqueros

Cómo ordenar el texto en mayúsculas y minúsculas

Para ordenar el texto con mayúsculas y minúsculas, ponga la opción -f a la ordenación. Esto ignorará la distinción entre mayúsculas y minúsculas al ordenar y mostrará el resultado en la pantalla.

Si un archivo tiene contenido en mayúsculas y minúsculas, la ordenación se hará primero en mayúsculas. Supongamos que existe un archivo con una lista de nombres en un archivo llamado nombres.txt.

Sam
Sally
Sarah
Steven

Por defecto, sort ordenará primero los caracteres en mayúsculas.

sort nombres.txt
Sam
Sarah
Sally
Steven

Para ordenar e ignorar los casos utilice la opción -f.

sort -f nombres.txt
Sally
Sam
Sarah
Steven

Cómo comprobar si un archivo ya está clasificado

Para comprobar si un archivo ya está ordenado, ponga la opción -c a sort. Esto mostrará si hay líneas que están fuera de orden.

Supongamos que existe un archivo con una lista de coches llamada coches.txt.

Audi
Cadillac
BMW
Dodge

El comando sort puede utilizarse para saber si este archivo está ordenado y qué líneas están desordenadas.

sort -c coches.txt
sort: cars.txt:3: disorder: BMW

Si no hay salida, se considera que el archivo ya está ordenado.

Cómo clasificar y eliminar duplicados

Para ordenar y eliminar los duplicados pase la opción -u a sort. Esto escribirá una lista ordenada en la salida estándar y eliminará los duplicados.

Supongamos que existe un fichero con una lista de cereales de desayuno para clasificar. Este archivo contiene un número de duplicados. Se guarda en el archivo breakfast.txt.

Cornflakes
Sultana Bran
Weetabix
Sultana Bran
Cornflakes
Shredded Wheat
Cherrios
Weetabix

Utilizando la opción -u se puede ordenar este archivo y eliminar los duplicados.

sort -u desayuno.txt
Cherrios
Cornflakes
Shredded Wheat
Sultana Bran
Weetabix

Cómo ordenar por meses

Para ordenar por mes pase la opción -M a sort. Esto escribirá una lista clasificada en la salida estándar ordenada por el nombre del mes.

Supongamos que el siguiente archivo existe y se guarda como months.txt.

Febrero
Enero
Marzo
Agosto
Septiembre

La opción -M con sort nos permite ordenar este archivo.

sort -M meses.txt
Enero
Febrero
Marzo
Agosto
Septiembre

Cómo ordenar por elementos que no están al principio de la línea

Para ordenar por elementos que no están al principio de la línea pase la opción -k para ordenar junto con un número de valor del campo a ordenar. Esto escribirá el resultado en la salida estándar.

Supongamos que existe un archivo con una lista de pedidos que se guarda como pedidos.txt.

1023 AcmeCo "Bouncey Castle"
1003 FooCo "Fluffy Toy"
1013 AcmeCo "Sombrero comestible"
1042 FooCo "Cojín de lazo"

El archivo debe ser ordenado por el nombre de la empresa que los colocó. Utilizando la opción -k y pasándole un número de la clave se puede conseguir esto.

sort -k 2 pedidos.txt
1023 AcmeCo "Bouncey Castle"
1013 AcmeCo "Sombrero comestible"
1003 FooCo "Fluffy Toy"
1042 FooCo "Cojín de lazo"

Cómo ordenar un archivo CSV

Para ordenar por un delimitador pase la opción -t para ordenar junto con el valor del delimitador. En el caso de un archivo CSV sería ,. Esto puede combinarse con la opción -k para ordenar por campos dentro de un CSV. El resultado se escribirá en la salida estándar.

Supongamos que existe un archivo con una lista de quesos que se guarda como cheese.csv.

2, Maroilles,1.13
3, Obispo Apestoso, 1,65
1, Brie de Meaux,1.99
4, Munster, 1,29

El archivo puede ordenarse por el nombre del queso utilizando una combinación de las opciones -k y -t.

sort -k 2 -t , cheese.csv
2, Maroilles,1.13
2, Maroilles,1.13
3, Obispo Apestoso, 1,65
1, Brie de Meaux,1.99
4, Munster, 1,29

Para clasificar el queso más caro se pueden utilizar las opciones numérica e inversa.

sort -k 3 -t , -n -r queso.csv
1, Brie de Meaux,1.99
3, Obispo Apestoso, 1,65
4, Munster, 1,29
2, Maroilles,1.13

Más información

¿Tienes alguna actualización o sugerencia para este artículo? Puedes editarlo aquí y enviarme un pull request.

George Ornbo

Picture of George Ornbo

George Ornbo es ingeniero de software en Buckinghamshire, Inglaterra.

Es el autor de Sams Teach Yourself Goin 24 Hours y Sams Teach Yourself Node .js in 24 Hours. Se le puede encontrar en la mayoría de los lugares habituales como shapeshed.

← http://shapeshed.com

Contenido bajo licencia Creative Commons Reconocimiento-No Comercial-Compartir Igual4.0 Internacional (CC BY-NC-SA 4.0)

Valora este artículo

Articulos relacionados


Traducción de software de la página oficial de Rachota, una vieja gloria de los programas de gestión del tiempo, enmarcados en la categoría de software de productividad Descubre cómo eran los primeros programas diseñados para controlar cómo usas tu tiempo y ayudarte a no...

Traducción de Inglés a Español de un interesantísimo artículo de Dawei Ma, desarrollador de Xian, que nos explica detalladamente cómo implementar un proyecto de traducción de software, incluyendo tanto internacionalización (varios entornos lingüísticos) como localización...

Traducción de un interesantísimo artículo de Bruno Krebs, un programador apasionado por aplicaciones altamente escalables y resistentes, que nos explica aquí como desarrollar una API RESTful en Python, usando el framework Flask. Aprenderemos a utilizar pipenv para gestionar las...