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
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 nº 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
Enlaces externos
- sort(1) – Comandos generales en el manual de FreeBSD (en inglés)
- en Softpanorama.org