Descripción general de sort
El comando `sort` ordena cada línea comparándola en su totalidad y enviando el resultado a la salida estándar en orden ASCII (alfabético). El archivo original no se modifica, y para guardar los cambios en un archivo, se debe usar la redirección (`>`).
Funciones principales de sort
El comando `sort` se utiliza principalmente con los siguientes propósitos:
Principales áreas de uso
- Ordenación de datos: Ordena archivos de registro, listas de datos, listas de usuarios, etc., según criterios específicos para mejorar la legibilidad.
- Eliminación de duplicados: Permite eliminar fácilmente líneas duplicadas basándose en datos ordenados. (Usado junto con `uniq`)
- Generación de informes: Organiza los datos en un formato más fácil de analizar, ordenándolos según campos específicos.
- Comparación de archivos: Puede utilizarse para normalizar el contenido de dos archivos antes de compararlos.
Principios básicos del método de ordenación
El comando `sort` compara los valores comenzando desde el primer carácter de cada línea, basándose en el valor del código de carácter (valor ASCII). Para los números, se tratan como cadenas, lo que puede resultar en resultados inesperados, como que '10' aparezca antes que '2'. Para evitar esto, se deben utilizar las opciones de ordenación numérica.
Principales opciones del comando sort
El comando `sort` ofrece diversas opciones que permiten controlar minuciosamente los criterios de ordenación, el orden y el tratamiento de duplicados.
1. Criterios y orden de ordenación
2. Opciones de tratamiento de duplicados y espacios en blanco
3. Opciones de salida y delimitadores
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
Aprende a ordenar y analizar datos de texto de manera eficiente a través de diversos ejemplos de uso del comando `sort`.
Ordenación básica del contenido de un archivo
echo -e "Charlie\nAlice\nBob" > names.txt
sort names.txt
Ordena las líneas del archivo `names.txt` en orden alfabético (ascendente) y las imprime.
Ordenación inversa del contenido de un archivo
echo -e "10\n2\n100" > numbers.txt
sort -r numbers.txt
Ordena los números del archivo `numbers.txt` tratándolos como cadenas en orden inverso.
Ordenación basada en valores numéricos
echo -e "20 Bob\n10 Alice\n100 Charlie" > scores.txt
sort -n scores.txt
Ordena las puntuaciones del archivo `scores.txt` (primer campo) en orden ascendente basado en valores numéricos reales.
Ordenación basada en la segunda columna (nombre) de un archivo CSV
echo -e "1,Bob,Seoul\n3,Alice,Busan\n2,Charlie,Jeju" > users.csv
sort -t',' -k 2 users.csv
Ordena el archivo `users.csv` separado por comas (`,`) según el segundo campo (nombre).
Eliminar líneas duplicadas después de ordenar
echo -e "apple\nbanana\napple\ncherry" > duplicates.txt
sort -u duplicates.txt
Ordena el contenido del archivo `duplicates.txt` y elimina líneas duplicadas, manteniendo solo una.
Guardar el resultado de la ordenación en un nuevo archivo
echo -e "Zebra\nCat\nDog" > unsorted.txt
sort unsorted.txt -o sorted.txt
Ordena el contenido del archivo `unsorted.txt` y guarda el resultado en el archivo `sorted.txt`. El archivo original no se modifica.
Ordenación considerando tamaños legibles para humanos
echo -e "10K file1\n2M file2\n500K file3\n1G file4" > sizes.txt
sort -h sizes.txt
Ordena una lista de tamaños de archivos considerando unidades legibles para humanos (K, M, G). Es útil al ordenar resultados como los de `du -h`.