sort

sort es una utilidad de la línea de comandos del sistema operativo Unix.

Funciona de la siguiente manera:

toma los archivos que figuran en su lista de argumentos y ordena sus líneas. La ordenación se realiza sobre la base de una o más claves extraídas de cada línea de los archivos de entrada. De forma predeterminada, todos los datos de entrada se toman como clave de ordenación. Los espacios en blanco son tomados por defecto como separadores de campo. El parámetro -r invertirá el orden, -n toma un valor alfabético y lo interpreta como un numero, con el parámetro -f no discriminara entre mayúsculas y minúsculas, -t se utiliza como separador de campo, -k busca según numero de columna y lo ordena.

Uso

sort [opciones] [archivo]

Ejemplos

Para ordenar el directorio actual por tamaño de archivo:

ls -s | sort -n

Para ordenar una lista en un archivo por orden alfabético:

 cat agenda.txt
Juan López     555-4321
Antonia Pérez  555-1234
Rodolfo Ruiz   555-3214
Ana Cohen      555-4321
sort agenda.txt
Ana Cohen      555-4321
Antonia Pérez  555-1234
Juan López     555-4321
Rodolfo Ruiz   555-3214

La opción -n hace que el orden sea de acuerdo a valores numéricos:

 du /bin/* | sort -n
  10     /bin/domainname
  10     /bin/hostname
  10     /bin/run-parts
  42     /bin/cp
  675    /bin/bash

En las versiones antiguas del comando 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). Las versiones más actuales no soportan esta opción, en su lugar se usa la opción -k, por ejemplo, para ordenar usando como criterio la segunda columna de datos:

 sort -nk 2 ''edades''
  Jorge      25
  Lola       34
  Francisco  45
  Javier     56

Ordenar un archivo usando separadores:

 sort -t'|' -k2 ''edades''
  Jorge|25
  Lola|34
  Francisco|45
  Javier|56

La opción -r invierte el orden:

sort -nrk 2 ''edades''
  Javier     56
  Francisco  45
  Lola       34
  Jorge      25

Volver al inicio