Comandos LinuxExplicados en español
/
Ficha36 / 104
Categoría
Texto
Ejemplos
6
Ver también
uniq · cut · awk · wc

sort

sort (ordenar)

Ordena líneas de texto alfabética o numéricamente.

Toma las líneas de entrada y las ordena según el criterio que elijas. Lo usas para ordenar listas, ordenar por una columna o preparar datos antes de pasarlos a uniq.

Sintaxissort [opciones] [ARCHIVO...]
§ 1

Despiece

6 ejemplos
Ordenar alfabéticamente

Ordenar alfabéticamente

2 piezas
Lámina01 / 06
Comandosort nombres.txt
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1sortComandoEl comando para ordenar líneas.
2nombres.txtArgumentoArchivo con una lista de nombres, uno por línea.
Resultado

Muestra las líneas ordenadas de A a Z.

Ordenar numéricamente

3 piezas
Lámina02 / 06
Comandosort -n numeros.txt
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1sortComandoEl comando para ordenar líneas.
2-nOpciónOrdena numéricamente en lugar de carácter por carácter.
3numeros.txtArgumentoArchivo con números, uno por línea.
Resultado

Ordena correctamente 1, 2, 10 (no 1, 10, 2 como lo haría alfabéticamente).

Ordenar de mayor a menor

3 piezas
Lámina03 / 06
Comandosort -rn numeros.txt
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1sortComandoEl comando para ordenar líneas.
2-rnOpción-r invierte el orden y -n ordena numéricamente.
3numeros.txtArgumentoArchivo con números, uno por línea.
Resultado

Muestra los números ordenados de mayor a menor.

Ordenar por una columna numérica

4 piezas
Lámina04 / 06
Comandosort -t: -k3,3n /etc/passwd
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1sortComandoEl comando para ordenar líneas.
2-t:OpciónUsa dos puntos como separador de campos.
3-k3,3nOpciónOrdena solo por el campo 3 y de forma numérica (la n pegada aplica -n a esa columna).
4/etc/passwdArgumentoArchivo de cuentas, con campos separados por dos puntos. El campo 3 es el UID.
Resultado

Las cuentas quedan ordenadas por UID de menor a mayor: root (0) primero.

Ordenar y quitar duplicados

3 piezas
Lámina05 / 06
Comandosort -u lista.txt
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1sortComandoEl comando para ordenar líneas.
2-uOpciónMuestra solo una ocurrencia por línea única (unique).
3lista.txtArgumentoArchivo con líneas que pueden tener duplicados.
Resultado

Obtienes la lista ordenada y sin duplicados. Ojo: el orden original se pierde.

Ordenar tamaños legibles (K, M, G)

6 piezas
Lámina06 / 06
Comandodu -sh * | sort -h
Piezas6
Escala1:1
N.ºPiezaTipoQué hace
1duComandoMide cuánto ocupa cada archivo o carpeta.
2-shOpción-s da un total por elemento y -h muestra tamaños como 4.0K, 12M o 1.2G.
3*ArgumentoTodo lo que hay en la carpeta actual (sin ocultos).
4|OperadorPasa la salida de du al comando sort.
5sortComandoEl comando para ordenar líneas.
6-hOpciónOrdena entendiendo los sufijos K, M y G, así 900K queda antes que 1.2G.
Resultado

Las carpetas y archivos aparecen de menor a mayor tamaño; lo más pesado queda al final.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-n--numeric-sortOrdena numéricamente en lugar de alfabéticamente.
-r--reverseInvierte el orden (de mayor a menor o Z a A).
-k--keyOrdena por una columna o campo. -k3,3 usa solo el campo 3; -k3 solo, va del campo 3 al final de la línea.
-t--field-separatorDefine el separador de campos para usar con -k.
-u--uniqueElimina líneas duplicadas en la salida (ya ordenada).
-h--human-numeric-sortOrdena números con sufijos K, M, G (útil para tamaños de archivo).
§ 3

Fallas comunes

FallaRemedio
Ordenar números como textoOlvidaste -n. Con sort solo, 10 va antes que 2.
Esperar que sort -u conserve el orden original.sort -u reordena las líneas. Para quitar duplicados sin cambiar el orden usa awk '!visto[$0]++' archivo.
-k mal definidoEspecifica bien el campo y, si es necesario, el separador con -t. Por ejemplo, sort -t: -k3,3n para ordenar numéricamente solo el campo 3.
Usar -k2 creyendo que ordena solo por la columna 2.-k2 toma desde el campo 2 hasta el final de la línea. Para usar solo esa columna escribe -k2,2.
§ 4

Preguntas frecuentes

¿Cómo ordeno un archivo en Linux?
Con sort archivo.txt. Por defecto ordena alfabéticamente de A a Z.
¿Cómo ordeno números correctamente con sort?
Usa la opción -n: sort -n archivo.txt. Así 1, 2, 10 se ordenan correctamente.
¿Cómo invierto el orden con sort?
Agrega -r: sort -rn para números de mayor a menor, o sort -r para texto de Z a A.
¿Cuál es la diferencia entre sort -u y uniq?
sort -u ordena y elimina duplicados en un solo paso. uniq solo elimina duplicados que estén en líneas seguidas; por eso casi siempre se usa después de sort, y tiene extras como uniq -c para contar repeticiones.
¿Cómo ordeno por una columna específica?
Usa -k con el número de columna y -t para el separador. Ejemplo: sort -t, -k2,2 archivo.csv ordena por la segunda columna de un CSV sencillo. Agrega n (-k2,2n) si la columna tiene números.
§ 5

Ver también