sort (Unix)

De Wikipedia, la enciclopedia libre
sort --help


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 número, con el parámetro -f no discriminara entre mayúsculas y minúsculas, -t se utiliza como separador de campo, -k busca según número de columna y lo ordena.

Uso:

$ sort [opciones] [archivo]

Ejemplos[editar]

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

 $ ls -s|sort -n
  0 GNUstep
  0 Mail
  4 ALT.txt
  4 Events
  4 Ted.lnk
  12 stats
  124 _backup

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:

 esto está mal solo te lo ordena por el primer dígito si pusiésemos el  20 por ejemplo saldría el primero
  $ cat ''edades''
  Francisco  45
  Javier     56
  Lola       34
  Jorge      25
    
  $ 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

Véase también[editar]

Enlaces externos[editar]