14 ejemplos útiles del comando 'sort' de Linux - Parte 1


Sort es un programa de Linux que se utiliza para imprimir líneas de archivos de texto de entrada y la concatenación de todos los archivos en orden ordenado. El comando de clasificación toma un espacio en blanco como separador de campo y el archivo de entrada completo como clave de clasificación. Es importante notar que el comando sort no clasifica los archivos, solo imprime la salida ordenada, hasta que redirige la salida.

Este artículo tiene como objetivo una visión profunda del comando "sort" de Linux con 14 ejemplos prácticos útiles que le mostrarán cómo usar el comando sort en Linux.

1. Primero, crearemos un archivo de texto (tecmint.txt) para ejecutar ejemplos de comandos "ordenar". Nuestro directorio de trabajo es "/ home/mial/Desktop/tecmint.

La opción "-e" en el siguiente comando permite la interpretación de la barra invertida y/n le dice a echo que escriba cada cadena en una nueva línea.

$ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. Antes de comenzar con "ordenar", echemos un vistazo al contenido del archivo y su apariencia.

$ cat tecmint.txt

3. Ahora ordena el contenido del archivo usando el siguiente comando.

$ sort tecmint.txt

Nota: El comando anterior en realidad no ordena el contenido del archivo de texto, solo muestra la salida ordenada en la terminal.

4. Ordene el contenido del archivo "tecmint.txt" y escríbalo en un archivo llamado (sorted.txt) y verifique el contenido usando el comando cat.

$ sort tecmint.txt > sorted.txt
$ cat sorted.txt

5. Ahora ordene el contenido del archivo de texto "tecmint.txt" en orden inverso usando el interruptor "-r" y redirija la salida a un archivo "reversesorted.txt". Consulte también la lista de contenido del archivo recién creado.

$ sort -r tecmint.txt > reversesorted.txt
$ cat reversesorted.txt

6. Vamos a crear un nuevo archivo (lsl.txt) en la misma ubicación para obtener ejemplos detallados y completarlo usando la salida de "ls -l" para su directorio de inicio.

$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
$ cat lsl.txt

Ahora verá ejemplos para ordenar el contenido en base a otro campo y no a los caracteres iniciales predeterminados.

7. Ordene el contenido del archivo "lsl.txt" según la segunda columna (que representa el número de enlaces simbólicos).

$ sort -nk2 lsl.txt

Nota: La opción "-n" en el ejemplo anterior ordena los contenidos numéricamente. La opción "-n" debe utilizarse cuando deseamos ordenar un archivo en función de una columna que contiene valores numéricos.

8. Ordene el contenido del archivo "lsl.txt" basándose en la novena columna (que es el nombre de los archivos y carpetas y no es numérico).

$ sort -k9 lsl.txt

9. No siempre es esencial ejecutar el comando sort en un archivo. Podemos canalizarlo directamente en la terminal con el comando real.

$ ls -l /home/$USER | sort -nk5

10. Ordene y elimine los duplicados del archivo de texto tecmint.txt. Compruebe si el duplicado se ha eliminado o no.

$ cat tecmint.txt
$ sort -u tecmint.txt

Reglas hasta ahora (lo que hemos observado):

  1. Lines starting with numbers are preferred in the list and lies at the top until otherwise specified (-r).
  2. Lines starting with lowercase letters are preferred in the list and lies at the top until otherwise specified (-r).
  3. Contents are listed on the basis of occurrence of alphabets in dictionary until otherwise specified (-r).
  4. Sort command by default treat each line as string and then sort it depending upon dictionary occurrence of alphabets (Numeric preferred; see rule – 1) until otherwise specified.

11. Cree un tercer archivo "lsla.txt" en la ubicación actual y rellénelo con la salida del comando "ls -lA".

$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
$ cat lsla.txt

Aquellos que entienden el comando "ls" saben que "ls -lA" u003d "ls -l" + Archivos ocultos. Entonces, la mayor parte del contenido de estos dos archivos sería el mismo.

12. Ordene el contenido de dos archivos en la salida estándar de una vez.

$ sort lsl.txt lsla.txt

Observe la repetición de archivos y carpetas.

13. Ahora podemos ver cómo ordenar, fusionar y eliminar duplicados de estos dos archivos.

$ sort -u lsl.txt lsla.txt

14. También podemos ordenar el contenido de un archivo o la salida en función de más de una columna. Ordene la salida del comando "ls -l" según el campo 2,5 (numérico) y 9 (no numérico).

$ ls -l /home/$USER | sort -t "," -nk2,5 -k9

Eso es todo por ahora. En el próximo artículo cubriremos algunos ejemplos más del comando "ordenar" en detalle para usted. Hasta entonces, estad atentos y conectados a Tecmint. Sigue compartiendo. Sigue comentando. Me gusta y comparte con nosotros y ayúdanos a difundir.

Lea también: 7 ejemplos interesantes de comandos de "ordenación" de Linux - Parte 2