7 Ejemplos Interesantes del Comando ‘sort’ en Linux – Parte 2

En nuestro último artículo, cubrimos varios ejemplos del comando ‘sort‘. Si te lo perdiste, puedes ponerte al día siguiendo el enlace abajo. En esta publicación, continuaremos desde donde lo dejamos en el artículo anterior, para cubrir los aspectos restantes del comando. De esta manera, ambos artículos juntos servirán como una guía completa para el comando ‘sort‘ de Linux.

Antes de continuar, por favor crea un archivo de texto llamado ‘month.txt‘ y llénalo con los datos proporcionados abajo.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Ordenando el Contenido del Archivo por Mes

El siguiente comando ordena el contenido del archivo “month.txt” en orden cronológico basado en la abreviatura o nombre del mes utilizando la opción '-M' que instruye al comando ‘sort‘ a tratar los datos como fechas y ordenarlos en consecuencia.

sort -M month.txt

16. Ordenando la Salida por Tamaño de Archivo en Formato Legible por Humanos

El siguiente comando combina los comandos ‘ls‘ y ‘sort‘ para realizar dos tareas. Primero, lista el contenido del directorio personal del usuario en formato largo y luego, envía esta lista de directorios al comando ‘sort’ para imprimir los tamaños de archivo en un formato legible por humanos, facilitando la identificación de los archivos más grandes y más pequeños en el directorio.

ls -l /home/$USER | sort -h -k5

17. Comprobando Archivos Ordenados para Consistencia

En el artículo anterior, generamos dos archivos de texto: ‘sorted.txt‘ en el ejemplo número 4 y ‘lsl.txt‘ en el ejemplo número 6. Somos conscientes de que ‘sorted.txt‘ ya está ordenado, mientras que ‘lsl.txt‘ no lo está.

Para verificar el estado de ordenación de ambos archivos, emplearemos el comando ‘sort‘, que nos permitirá confirmar si ‘sorted.txt‘ permanece en el orden correcto y si ‘lsl.txt‘ requiere ordenación.

sort -c sorted.txt

Si devuelve 0, significa que el archivo está ordenado y no hay conflictos.

sort -c lsl.txt

18. Manejo de Delimitadores Cuando No se Utilizan Espacios en el Archivo

Si el delimitador (separador) entre palabras es un espacio, el comando ‘sort‘ interpreta automáticamente cualquier cosa después de un espacio horizontal como una nueva palabra. ¿Pero qué sucede cuando el delimitador no es un espacio?

Considere un archivo de texto, cuyos contenidos están separados por cualquier cosa que no sea un espacio como '|' o '\' o '+' o '.' o ...</code.

Cree un archivo de texto donde los contenidos estén separados por +. Utilice el comando cat para verificar los contenidos del archivo.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
$ cat delimiter.txt

Ahora ordene este archivo según el 1er campo que es numérico.

sort -t '+' -nk1 delimiter.txt

El segundo se basa en el 4to campo que no es numérico.

Si el delimitador es Tab, puede usar $'\t' en lugar de '+', como se muestra en el ejemplo anterior.

19. Ordenar aleatoriamente la salida por tamaño de archivo

Ordene la salida del comando ls -l para su directorio personal en función de la quinta columna, que representa la ‘cantidad de datos’, en orden aleatorio.

ls -l /home/avi/ | sort -k5 -R 

Cada vez que ejecute el fragmento de script anterior, es probable que obtenga un resultado diferente, ya que el resultado se genera de forma aleatoria.

Como es evidente de Regla número – 2 del último artículo, el comando sort prefiere líneas que comienzan con caracteres en minúsculas sobre caracteres en mayúsculas. También revise ejemplo 3 en el último artículo, donde la cadena ‘laptop‘ aparece antes que la cadena ‘LAPTOP

20. Anular las preferencias de ordenación predeterminadas

¿Cómo anular la preferencia de ordenación predeterminada? Antes de poder anular la preferencia de ordenación predeterminada, debemos exportar la variable de entorno 'LC_ALL' a 'C'.

Para hacer esto, ejecute el código a continuación en su prompt de comando.

export LC_ALL=C

Y luego ordene el archivo de texto ‘tecmint.txt’ anulando la preferencia de ordenación predeterminada.

$ sort tecmint.txt

No olvide comparar la salida con la que logró en ejemplo 3 y también puede usar la opción ‘-f‘ o ‘--ignore-case‘ para obtener una salida mucho más organizada.

$ sort -f tecmint.txt

21. Combinando Dos Archivos de Entrada en una Operación Única

¿Qué tal si ejecutamos ‘sort‘ en dos archivos de entrada y los unimos de una vez?

Creemos dos archivos de texto, llamados ‘ file1.txt‘ y ‘ file2.txt‘, y llenémoslos con algunos datos. En ‘ file1.txt‘, agregaremos números como se muestra a continuación. También usaremos el comando cat para inspeccionar el contenido del archivo

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

Y llenemos el segundo archivo ‘ file2.txt‘ con algunos datos.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Ahora ordenemos y unamos la salida de ambos archivos.

join <(sort -n file1.txt) <(sort file2.txt)

Conclusión

En conclusión, este artículo ha explorado varios aspectos del comando ‘sort‘ en Linux. Empezamos con la clasificación básica por orden alfabético, nos aventuramos en la clasificación numérica y basada en fechas, e incluso tocamos los delimitadores personalizados. También aprendimos cómo anular las preferencias de clasificación predeterminadas para adaptarlas a nuestras necesidades.

Además, discutimos técnicas para comprobar si un archivo ya está ordenado y combinamos operaciones de ‘sort‘ para múltiples archivos de entrada. Con el conocimiento adquirido aquí, tienes una herramienta poderosa a tu disposición para ordenar y organizar datos de manera eficiente en un entorno Linux.

Esperamos que este artículo haya sido perspicaz y útil para tus esfuerzos en la línea de comandos. Sigue explorando, aprendiendo y dominando el arte de ‘sort‘ para mejorar tus habilidades en Linux.

Source:
https://www.tecmint.com/linux-sort-command-examples/