Inicio > Procesamiento y búsqueda de texto > sort

sort: Ordenar archivos de texto

El comando `sort` es una utilidad potente utilizada para ordenar el contenido de archivos de texto línea por línea. Puede ordenar según varios criterios como orden alfabético, numérico o mensual. En particular, la opción `-n` permite que los números se reconozcan como valores numéricos reales en lugar de cadenas de texto, lo que garantiza una ordenación correcta y es muy útil para archivos de registro o análisis de datos.

Descripción general

El comando `sort` reorganiza cada línea de un archivo de texto según criterios especificados y las envía a la salida estándar. Por defecto, ordena alfabéticamente, pero con varias opciones, puede ordenar según números, meses o campos específicos. En particular, la opción `-n` es esencial para que los números se reconozcan como valores numéricos reales en lugar de cadenas de texto, asegurando una ordenación correcta.

Funciones principales

  • Ordenación línea por línea de archivos de texto
  • Soporte para varios criterios de ordenación como alfabético, numérico y mensual
  • Funciones para eliminar duplicados y ordenar por campos específicos
  • Capacidad para procesar tanto la entrada estándar como la entrada de archivos

Opciones principales

El comando `sort` admite una variedad de opciones para proporcionar potentes funciones de ordenación. A continuación se presentan las opciones más utilizadas.

Criterios de ordenación

Salida y otros

Comando generado:

Combina los comandos.

Descripción:

`sort` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

A continuación se muestran ejemplos prácticos de uso del comando `sort` con sus opciones principales.

Ordenación numérica básica

cat numbers.txt
# Ejemplo de salida:
# 10
# 2
# 1
# 20

sort -n numbers.txt
# Salida esperada:
# 1
# 2
# 10
# 20

Ordena el contenido del archivo numbers.txt numéricamente en orden ascendente.

Ordenación numérica inversa

sort -nr numbers.txt
# Salida esperada:
# 20
# 10
# 2
# 1

Ordena el contenido del archivo numbers.txt numéricamente en orden descendente.

Ordenación por campo específico (numérico)

cat data.csv
# Ejemplo de salida:
# apple,100,red
# banana,20,yellow
# cherry,50,red

sort -t, -nk2 data.csv
# Salida esperada:
# banana,20,yellow
# cherry,50,red
# apple,100,red

Ordena el archivo data.csv según el segundo campo, utilizando la coma (,) como delimitador, numéricamente.

Ordenación numérica con eliminación de duplicados

cat numbers_dup.txt
# Ejemplo de salida:
# 10
# 2
# 1
# 20
# 2

sort -nu numbers_dup.txt
# Salida esperada:
# 1
# 2
# 10
# 20

Ordena el contenido del archivo numbers_dup.txt numéricamente y elimina las líneas duplicadas.

Guardar el resultado de la ordenación en un archivo

sort -n input.txt -o sorted_numbers.txt
cat sorted_numbers.txt

Ordena el contenido del archivo input.txt numéricamente y guarda el resultado en el archivo sorted_numbers.txt.

Consejos y precauciones

El comando `sort` es muy potente, pero si no se usa correctamente, puede producir resultados inesperados. Consulte los siguientes consejos y precauciones para utilizarlo de manera eficaz.

Consejos útiles

  • `sort` realiza una ordenación estable por defecto. Esto significa que el orden relativo de los registros con claves idénticas se mantiene.
  • Al usar la opción `-k`, los números de campo comienzan desde 1.
  • Para ordenar archivos grandes, especificar un directorio temporal con la opción `-T` puede mejorar el rendimiento.
  • Se utiliza frecuentemente junto con tuberías (`|`) para ordenar la salida de otros comandos. (Ejemplo: `ls -l | sort -nk5`)

Precauciones

  • Si ordena números sin la opción `-n`, se ordenarán alfabéticamente, lo que puede llevar a resultados inesperados como '10' apareciendo antes que '2'. Siempre use `-n` para la ordenación numérica.
  • El orden de ordenación puede variar según la configuración de la configuración regional (locale). Para obtener resultados consistentes, puede especificar explícitamente la configuración regional, como `LC_ALL=C sort`.

Comandos de la misma categoría