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. Texto traducido de Ingl√©s a Espa√Īol por Jose Bescos. 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