Búsqueda de sitios web

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


El comando "ordenar" es un programa de Linux que se utiliza para imprimir líneas de archivos de texto de entrada y concatenar todos los archivos en orden. El comando de clasificación toma un espacio en blanco como separador de campo y todo el archivo de entrada como clave de clasificación. Es importante tener en cuenta que el comando de clasificación en realidad no ordena los archivos, sino que solo imprime la salida ordenada hasta que la redirige.

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

1. Crear un archivo de texto con contenido específico

Primero, crearemos un archivo de texto, llamado 'tecmint.txt', que se usará para ejecutar el comando 'sort'. Los ejemplos en nuestro directorio de trabajo para esta tarea son ' /home/$USUARIO/Desktop/tecmint'.

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

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

2. Ver el contenido del archivo

Antes de comenzar con el comando 'ordenar', echemos un vistazo al contenido del archivo y cómo aparece usando el siguiente comando cat.

cat tecmint.txt

3. Ordenar el contenido del archivo

El comando “sort tecmint.txt” se utiliza para reorganizar las líneas del archivo en orden alfabético ascendente; si hay líneas duplicadas, mantendrá una copia de cada línea única.

sort tecmint.txt

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

4. Redirigir la salida ordenada a un archivo nuevo

El siguiente comando se utiliza para ordenar las líneas del archivo de texto “tecmint.txt” en orden alfabético y luego redirige la salida ordenada a un nuevo archivo llamado “sorted.txt “, lo que significa que el archivo original permanece sin cambios y el contenido ordenado se almacena en un archivo separado.

Para verificar el contenido, use el comando cat.

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

5. Ordenar el contenido del archivo en orden inverso

El siguiente comando se utiliza para ordenar las líneas del archivo de texto “tecmint.txt” en orden inverso, lo que significa que organizará las líneas en orden alfabético descendente y la salida ordenada luego se redirigirá a una nueva archivo llamado “reversesorted.txt

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

6. Guardar lista de archivos y directorios

El siguiente comando se usa para enumerar el contenido del directorio de inicio del usuario (“/home/$USER“) en una vista detallada y de formato largo usando el comando ls y luego redirige este listado de directorio a un archivo de texto llamado “lsl.txt” ubicado en el escritorio del usuario, específicamente en el directorio “tecmint”.

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

Ahora, exploraremos ejemplos de cómo ordenar el contenido según campos distintos de los caracteres iniciales predeterminados.

7. Ordenar el contenido del archivo según el segundo campo

El siguiente comando se utiliza para ordenar el contenido del archivo “lsl.txt” según los valores del segundo campo de cada línea. La opción '-n' indica una clasificación numérica, tratando el segundo campo como números en lugar de texto.

La opción '-k2' especifica que queremos ordenar según el segundo campo. Al ejecutar este comando, obtendrá una lista ordenada de las líneas en "lsl.txt", siendo el criterio de clasificación los valores numéricos en el segundo campo de cada línea.

sort -nk2 lsl.txt

8. Ordenar el contenido del archivo según el noveno campo

El siguiente comando se utiliza para ordenar las líneas en el archivo “lsl.txt” según los valores del noveno campo de cada línea en orden ascendente. La opción '-k9' especifica que la clasificación debe realizarse según el noveno campo.

sort -k9 lsl.txt

9. Ordenar archivos por tamaño de archivo

El siguiente comando combina los comandos 'ls' y 'sort' para enumerar el contenido del directorio de inicio del usuario en un formato de lista larga y luego canaliza la lista del directorio a 'sort -nk5', que ordena la lista según los valores de la quinta columna, que representa los tamaños de archivo.

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

10. Eliminar líneas duplicadas en un archivo

El siguiente comando ordena las líneas en el archivo “tecmint.txt” en orden alfabético ascendente y elimina cualquier línea duplicada usando la opción '-u', que significa “unique”, y garantiza que las líneas únicas se conserven en la salida ordenada.

cat tecmint.txt
sort -u tecmint.txt

Reglas hasta ahora (lo que hemos observado):

  • Las líneas que comienzan con números se prefieren en la lista y se encuentran en la parte superior hasta que se especifique lo contrario (-r).
  • Las líneas que comienzan con letras minúsculas se prefieren en la lista y se encuentran en la parte superior hasta que se especifique lo contrario (-r).
  • Los contenidos se enumeran según la aparición de alfabetos en el diccionario hasta que se especifique lo contrario (-r).
  • El comando Ordenar de forma predeterminada trata cada línea como una cadena y luego la clasifica según la aparición de alfabetos en el diccionario (se prefiere numérico; consulte la regla - 1) hasta que se especifique lo contrario.

11. Redirigir el listado del directorio al archivo

El siguiente comando enumera el contenido del directorio de inicio del usuario en formato largo, incluidos archivos y directorios ocultos y luego redirige el listado del directorio a un archivo de texto llamado “lsla.txt” ubicado en el escritorio del usuario dentro el directorio “tecmint”.

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

Aquellos familiarizados con el comando ls entienden que 'ls -lA' es equivalente a 'ls -l' más archivos ocultos. Como resultado, la mayoría del contenido de estos dos comandos será el mismo.

12. Ordenar el contenido de los archivos

El siguiente comando ordena el contenido de dos archivos de texto, 'lsl.txt' y 'lsla.txt', en orden alfabético ascendente y luego combina y muestra el contenido ordenado en la terminal.

sort lsl.txt lsla.txt

Observe la repetición de archivos y carpetas.

13. Eliminar líneas duplicadas en un archivo

El siguiente comando fusiona y ordena el contenido de dos archivos de texto, 'lsl.txt' y 'lsla.txt', en orden alfabético ascendente mientras elimina cualquier línea duplicada usando el Opción '-u', que garantiza que se conserven líneas únicas en la salida ordenada.

sort -u lsl.txt lsla.txt

Observe que los duplicados se han omitido en el resultado. Además, puede guardar el resultado en un archivo nuevo redirigiéndolo.

14. Ordenar la salida por múltiples campos usando un delimitador personalizado

El siguiente comando combina los comandos 'ls' y 'sort' para enumerar el contenido del directorio de inicio del usuario en formato largo y luego canaliza el listado del directorio al directorio '< comandosort', que ordena la salida en función de columnas y campos específicos.

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

Aquí hay un desglose del comando:

  • -t ",": especifica que se utiliza una coma (",") como delimitador de campo.
  • -nk2,5: indica la clasificación por un valor numérico en las columnas 2 a 5, que normalmente representan permisos y detalles de propiedad.
  • -k9: ordena aún más el resultado según la novena columna, que representa los tamaños de archivo.

Eso es todo por ahora. En el próximo artículo, profundizaremos en ejemplos más detallados del comando de clasificación.

Continúe compartiendo, comentando, dando me gusta y ayúdenos a llegar a una audiencia más amplia.