GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de clasificación de Linux con ejemplos

Introducción

El sort El comando es una herramienta para clasificar el contenido de los archivos e imprimir el resultado en una salida estándar. Reordenar el contenido de un archivo numérica o alfabéticamente y organizar la información en orden ascendente o descendente mejora la legibilidad.

En este tutorial, aprenderá a usar el sort de Linux comando y vea ejemplos útiles.

Requisitos previos

  • Un sistema que ejecuta Linux.
  • Acceso a una terminal.

Sintaxis de clasificación de Linux

El sort El comando tiene la siguiente sintaxis:

sort [options] filename

Ejecutando el sort comando sin [options] genera el contenido del archivo y aplica las reglas de clasificación predeterminadas para la configuración regional actual.

Las reglas principales son:

  • Líneas que comienzan con un número ir antes de las líneas que comienzan con una letra , dispuestos en ascendente orden (1-10).
  • Las líneas que comienzan con letras se ordenan en ascendente orden alfabético (A-Z).

Por ejemplo, el siguiente archivo tiene varias líneas aleatorias:

Ejecute sort para organizar el contenido del archivo de la manera predeterminada:

El ejemplo anterior muestra cómo sort El comando organiza las líneas de forma predeterminada cuando no se especifica ninguna opción.

Opciones de clasificación de Linux

Especifique una opción para cambiar el sort reglas de clasificación de comandos. Las opciones más utilizadas se enumeran en la siguiente tabla:

Ejemplos de clasificación de Linux

A continuación se muestran ejemplos del uso de sort Comando para organizar el contenido del archivo de diferentes maneras.

Ejemplo 1:Guardar la salida en un archivo

El sort El comando solo muestra el contenido de un archivo después de organizarlo, pero no cambia el archivo. Sin embargo, el -o le permite guardar el sort salida del comando a un archivo.

Por ejemplo, el siguiente comando ordena los datos en default.txt y guarda el resultado en sorted.txt archivo:

sort -o sorted.txt default.txt

Ejecutar cat genera el contenido del nuevo archivo.

Otra forma de guardar el sort la salida del comando es redirigir la salida a un archivo:

sort default.txt > sorted.txt

Ejemplo 2:Comprobar la clasificación en el archivo

Especifique el -c opción para comprobar si el contenido de un archivo ya se ha ordenado. Si los contenidos ya están ordenados, no hay salida del sort dominio.

Sin embargo, cuando sort encuentra una línea desordenada, genera un mensaje que informa que la primera línea está fuera de lugar.

Por ejemplo:

sort -c default.txt

El comando genera un mensaje que informa el número y el contenido de la primera línea no ordenada.

Ejemplo 3:ordenar varios archivos

Hay dos formas de ordenar varios archivos:

1. Enumere los nombres de archivo como argumentos separados por un espacio.

Ordene varios archivos simultáneamente especificando los nombres de archivo respectivos como argumentos, separados por espacios en blanco. El contenido de los archivos se une, ordena e imprime en salida estándar.

Por ejemplo:

sort default1.txt default2.txt

El comando concatena, ordena e imprime el contenido de ambos archivos.

2. Canaliza el find salida del comando a sort .

Otra forma de ordenar varios archivos simultáneamente es canalizar la salida del comando de búsqueda a sort y use el --files0-from= opción en el sort dominio.

Especifique el -print0 opción en find para finalizar el nombre del archivo con NUL y asegúrese de que el programa lea correctamente la lista de archivos.

Por ejemplo:

find -name "default?.txt" -print0 | sort --files0-from=-

El ejemplo anterior concatena y ordena el default1.txt y predeterminado2.txt archivos.

Ejemplo 4:Ordenar por Campos

De forma predeterminada, sort compara el contenido de toda la línea y decide cómo ordenarlo. Para comparar según un subconjunto de datos, especifique qué campos comparar utilizando -k opción.

El -k opción toma la siguiente sintaxis:

-k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .Cend ] ][ Modifier ] ]
  • FStart . El comienzo de la línea.
  • CStart . La primera columna en el campo.
  • Fend . El final de la línea.
  • CEnd . La última columna del campo.

La clave de clasificación incluye todos los caracteres que comienzan con el campo especificado por FStart variable y la columna especificada por CStart variable. La clave termina con el campo especificado por FEnd y la columna especificada por CEnd .

Sin especificar Fend asume el último carácter de la línea como el final. Sin especificar CEnd , el último carácter de FEnd se asume el campo.

Si hay algún espacio entre los campos, sort los considera como campos separados.

Por ejemplo, las líneas del siguiente archivo contienen tres campos:

Ordene los datos según el segundo campo ejecutando:

sort -k 2,2 school.txt

El comando ordena los datos según el segundo campo e ignora el primer campo.

Ejemplo 5:Ordenar en orden inverso

Usa el -r opción para clasificar los datos en orden inverso, es decir, en orden alfabético inverso o de mayor a menor número.

Por ejemplo, el siguiente archivo se clasifica con las reglas de clasificación predeterminadas:

sort default.txt

Especificando el -r opción invierte el orden de clasificación:

sort -r default.txt

Ejemplo 6:eliminar entradas duplicadas

El -u opción permite sort para eliminar entradas duplicadas de un archivo. Por ejemplo, el siguiente archivo tiene varias entradas duplicadas:

Especificando el -u opción ordena los datos y elimina las líneas duplicadas:

sort -u test.txt

Ejemplo 7:Ordenar por Meses

Especifique el -M opción para organizar los datos según los meses enumerados en un archivo.

Para demostrar la clasificación por meses, cree un archivo con el resultado del comando ls:

ls -l > month-sorting.txt

Ordene los datos de ls -l salida por meses ejecutando el siguiente comando:

sort -Mk6 month-sorting.txt

El comando ordena el contenido del archivo según el sexto campo que contiene el mes de creación del archivo .

Ejemplo 8:ordenar datos aleatoriamente

Usa el -R opción para organizar datos aleatoriamente sin aplicar ningún criterio de clasificación.

Por ejemplo, el siguiente archivo contiene varias líneas ordenadas numéricamente:

Mezcla el orden de las líneas con el siguiente comando:

sort -R ordered.txt

El resultado muestra que los datos ahora están ordenados aleatoriamente.

Ejemplo 9:especificar un delimitador

sort separa los campos en una línea usando espacios en blanco (espacios o tabuladores) como delimitadores de campo. Especifique el -t opción para cambiar el delimitador de campo a un carácter diferente.

Por ejemplo, el siguiente archivo contiene varios campos, incluido el nombre de una persona, el cargo y el lugar de residencia:

Ordenar el archivo por lugar de residencia sin cambiar el delimitador no funciona porque algunas ciudades tienen un espacio en medio de su nombre. El espacio hace sort interprete el nombre de la ciudad como dos campos en lugar de uno.

Cambie el delimitador a una coma (, ) para ordenar correctamente el contenido del archivo:

sort -t, -k4 school.txt

Cambiar el delimitador produce la salida deseada.

Ejemplo 10:ordenar una salida de transmisión

Otra forma de proporcionar información al sort comando es usar la tubería (| ) operador. Canalización en sort le permite organizar la salida de otro comando y, opcionalmente, guardar los resultados en un archivo.

El siguiente ejemplo muestra cómo canalizar el ls salida del comando en sort y organice el contenido por tamaño de archivo:

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

El -nk5 las opciones especifican clasificación numérica en el quinto campo .


Linux
  1. Comando wc Linux con ejemplos

  2. Comando Linux Tee con ejemplos

  3. Comando de cabeza de Linux con ejemplos

  4. Ordenar comando en Linux con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando de exportación de Linux con ejemplos

Ordenar comando en Linux con ejemplos

Comando IP de Linux con ejemplos

    Forma de opción corta Formulario de opción larga Descripción
    -b --ignore-leading-blanks Causas sort para ignorar los espacios en blanco iniciales.
    -d --dictionary-order Causas sort considerar solo espacios en blanco y caracteres alfanuméricos.
    -f --ignore-case Ignora la regla de clasificación de mayúsculas y minúsculas predeterminada y cambia todas las letras minúsculas a mayúsculas antes de la comparación.
    / --files0-from=F Lee la entrada de los archivos especificados por NUL nombres terminados en el F especificado expediente. Si F es - , sort lee los nombres de la entrada estándar.
    -M --month-sort Ordena las líneas según los meses (enero-diciembre).
    -h --human-numeric-sort Compara números legibles por humanos (por ejemplo, 2K 1G).
    -n --numeric-sort Compara datos según valores numéricos de cadena.
    -R --random-sort Ordena los datos por un hash aleatorio de claves, pero agrupa claves idénticas.
    / --random-source=FILE Obtiene bytes aleatorios del FILE especificado .
    -r --reverse Invierte los resultados de la comparación.
    / --sort=WORD Ordenar datos según la WORD especificada :general-numérico -g , humano-numérico -h , mes -M , numérico -n , aleatorio -R , versión -V .
    -c --check, --check=diagnose-first Comprueba si la entrada ya está ordenada pero no la ordena.
    / --debug Anota la parte de la línea utilizada para ordenar.
    -k --key=KEYDEF Ordenar datos usando el KEYDEF especificado , que proporciona la ubicación y el tipo de clave.
    -m --merge Causas sort para fusionar archivos ya ordenados.
    -o --output=FILE Redirige la salida a FILE en lugar de imprimirlo en salida estándar.
    -t --field-separator=SEP Utiliza el SEP especificado separador en lugar de transición de no en blanco a en blanco.
    -z --zero-terminated Hace que ordenar use NUL como delimitador de línea en lugar del carácter de nueva línea.
    / --help Muestra el archivo de ayuda con la lista completa de opciones y sale.
    / --version Envía la versión del programa y sale.