Herramienta para combinar líneas de uno o varios archivos en columnas, ideal para unir datos y generar tablas simples desde la terminal.


En el entorno de GNU/Linux, el procesamiento de datos de texto es una tarea cotidiana para administradores de sistemas, desarrolladores y usuarios avanzados. Entre las herramientas más poderosas y versátiles se encuentra el comando sort, que permite ordenar líneas de archivos de texto o flujos de datos según diversos criterios. Este comando es parte del paquete GNU Coreutils y está disponible en casi todas las distribuciones de Linux.

La capacidad de ordenar datos de manera eficiente es fundamental para tareas como el análisis de logs, la gestión de bases de datos en formato de texto, la preparación de informes y la automatización de procesos. En este artículo, exploraremos en detalle el comando sort, su sintaxis, casos de uso y ejemplos prácticos.

¿Para qué se usa el comando sort?

El comando sort se utiliza principalmente para:

  • Ordenar líneas de texto alfabética o numéricamente.
  • Organizar datos en archivos de texto, logs, CSV, etc.
  • Preparar datos para su posterior procesamiento con otros comandos como uniq, grep, awk, etc.
  • Ordenar por columnas específicas en archivos estructurados.
  • Manejar grandes volúmenes de datos de manera eficiente.

sort es especialmente útil en scripts de shell y pipelines, donde se combina con otros comandos para realizar tareas complejas de procesamiento de texto.

Sintaxis Básica

La sintaxis básica del comando sort es la siguiente:

sort [OPCIONES] [ARCHIVO...]
  • OPCIONES: Parámetros que modifican el comportamiento de sort.
  • ARCHIVO: Uno o más archivos de texto a ordenar. Si no se especifica ningún archivo, sort lee desde la entrada estándar (stdin).

Algunos ejemplos prácticos

A continuación, se presentan ejemplos prácticos del uso de sort con sus opciones más comunes y útiles.

Ordenar un archivo de texto alfabéticamente

Supongamos que tenemos un archivo llamado usuarios.txt con el siguiente contenido:

t3rr0rz0n3
ana
carlos
beatriz

Para ordenar alfabéticamente el contenido del archivo:

$ sort usuarios.txt

ana
beatriz
carlos
t3rr0rz0n3

Ordenar en orden inverso

Si deseamos ordenar en orden inverso (de la Z a la A), usamos la opción -r:

$ sort -r usuarios.txt

t3rr0rz0n3
carlos
beatriz
ana

Ordenar numéricamente

Si tenemos un archivo notas.txt con notas de usuarios:

t3rr0rz0n3 95
ana 85
carlos 78
beatriz 92

Para ordenar por el campo numérico (la nota), usamos -n:

$ sort -n notas.txt

carlos 78
ana 85
beatriz 92
t3rr0rz0n3 95

Ordenar por una columna específica

Si queremos ordenar por la segunda columna (la nota), usamos -k:

$ sort -k2 -n notas.txt

carlos 78
ana 85
beatriz 92
t3rr0rz0n3 95

Ordenar ignorando mayúsculas y minúsculas

Si el archivo contiene nombres con mayúsculas y minúsculas, y queremos ignorar la diferencia:

$ sort -f usuarios.txt

Ordenar y eliminar duplicados

Para ordenar y eliminar líneas duplicadas, combinamos sort con uniq:

sort usuarios.txt | uniq

Ordenar por mes (formato de fecha)

Si tenemos un archivo logs.txt con fechas en formato "Mes Día":

Ene 10 t3rr0rz0n3
Feb 05 ana
Mar 15 carlos
Ene 01 beatriz

Para ordenar por mes, usamos -M:

$ sort -M logs.txt

Ene 01 beatriz
Ene 10 t3rr0rz0n3
Feb 05 ana
Mar 15 carlos

Ordenar por tamaño de archivo

Podemos listar los archivos de un directorio ordenados por tamaño:

ls -l | sort -k5 -n

Ordenar y guardar el resultado en un nuevo archivo

Para guardar el resultado ordenado en un nuevo archivo:

sort usuarios.txt -o usuarios_ordenados.txt

Ordenar por múltiples columnas

Si queremos ordenar primero por la columna 2 y luego por la 1 en un archivo CSV:

sort -t',' -k2,2 -k1,1 datos.csv#

Conclusión

El comando sort es una herramienta esencial en el arsenal de cualquier usuario de GNU/Linux. Su flexibilidad y potencia permiten manejar y organizar datos de texto de manera eficiente, ya sea en la línea de comandos o dentro de scripts automatizados. Con las opciones adecuadas, sort puede adaptarse a casi cualquier necesidad de ordenamiento, desde simples listas hasta archivos de datos complejos.

¿Buscas otro comando?

¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!

Diccionario de comandos para GNU/Linux

Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación