Ordenar líneas de los archivos de entrada a partir de criterios de ordenación. Los espacios en blanco son tomados por defecto como separadores de campo.
Su sintaxis es de la forma:
sort [opciones] [archivo]
Alguno de sus opciones son:
-b Ignora espacios en blanco precedentes.
-d Ordena ignorando todos los caracteres salvo caracteres letras, números y espacios.
-f considera iguales las mayúsculas y minúsculas.
-n ordena por valor numérico.
-r invertirá el orden.
-k n1,[n2] Especifica un campo como clave de ordenación, comienza en n1 y acaba en n2; los números de campo empiezan en 1. En versiones antiguas existía la opción +1, la cual indicaba a sort que debía ordenarse tomando la segunda columna de datos, usándose +2 para la tercera y así sucesivamente, (los números de campo empezaban en 0).
-o salida.txt Escribir el resultado en salida.txt.
Ejemplos de uso, para lo cual se tomara como ejemplo el archivo pepe.txt cuyo contenido es:
# cat pepe.txt 15 windows 16 acer 2 actualizacion 1 actualizada 3 admiral 2 www 1 agregar 10 aires 1 al 1 algunos 1 empleos 60 en 2 equipo 45 archivos 3 word
sort pepe.txtOrdena el archivo pepe.txt
# sort pepe.txt 10 aires 15 windows 16 acer 1 actualizada 1 agregar 1 al 1 algunos 1 empleos 2 actualizacion 2 equipo 2 www 3 admiral 3 word 45 archivos 60 en
sort -k 1 pepe.txtOrdena el archivo usando el primer campo como clave de ordenación. Tiene el mismos efecto que sort pepe.txt
# sort -k 1 pepe.txt 10 aires 15 windows 16 acer 1 actualizada 1 agregar 1 al 1 algunos 1 empleos 2 actualizacion 2 equipo 2 www 3 admiral 3 word 45 archivos 60 en
sort -k 2 pepe.txtOrdena el archivo usando el segundo campo como clave de ordenación.
# sort -k 2 pepe.txt 16 acer 2 actualizacion 1 actualizada 3 admiral 1 agregar 10 aires 1 al 1 algunos 45 archivos 1 empleos 60 en 2 equipo 15 windows 3 word 2 www
sort -n pepe.txtOrdena el archivo por valor numérico.
# sort -n pepe.txt 1 actualizada 1 agregar 1 al 1 algunos 1 empleos 2 actualizacion 2 equipo 2 www 3 admiral 3 word 10 aires 15 windows 16 acer 45 archivos 60 en
sort -nr pepe.txtOrdena el archivo por valor numérico de mayor a menor (invierte el orden).
# sort -nr pepe.txt 60 en 45 archivos 16 acer 15 windows 10 aires 3 word 3 admiral 2 www 2 equipo 2 actualizacion 1 empleos 1 algunos 1 al 1 agregar 1 actualizada
sort -t @ -k 2,2 pp.txt ordena el archivo pp.txt por el segundo campo, y el separador de campo que utilizo es el @ arroba.
Un ejemplo de uso práctico es si tengo una lista desordenada (de por ejemplo una palabra por fila) y quiero averiguar cuantas veces se repite cada palabra, para lo cual puede usar el comando:
sort -bdf lista | uniq -ic | sort -nr
Donde sort -bdf lista ordenará la lista, para que el comando uniq -ic pueda contar el número de líneas iguales (considera iguales las mayúsculas y minúsculas), por último ejecuto sort -nr para que ordene la lista por la palabra que se repite más.
# cat ejemplo.txt mama pepe hola Hola pepe Hola si no Mama www # sort -bdf ejemplo.txt | uniq -ic | sort -nr 3 hola 2 pepe 2 mama 1 www 1 si 1 no
Este comando es utilizado en conjunto con el comando uniq, ya que para encontrar lineas duplicadas consecutivas primero hay que ordenar el contenido del archivo.
Envíanos tús preguntas, comentarios o sugerencias