Comando SORT en Linux/Unix con ejemplos

El comando SORT se usa para ordenar un archivo, organizando los registros en un orden particular. De forma predeterminada, el comando sort ordena el archivo asumiendo que el contenido es ASCII. El uso de opciones en el comando ordenar también se puede usar para ordenar numéricamente. 

  • El comando SORT ordena el contenido de un archivo de texto, línea por línea.
  • sort es un programa de línea de comandos estándar que imprime las líneas de su entrada o concatenación de todos los archivos enumerados en su lista de argumentos en orden ordenado.
  • El comando ordenar es una utilidad de línea de comandos para ordenar líneas de archivos de texto. Admite la clasificación alfabética, en orden inverso, por número, por mes y también puede eliminar duplicados.
  • El comando ordenar también puede ordenar por elementos que no están al principio de la línea, ignorar la distinción entre mayúsculas y minúsculas y devolver si un archivo está ordenado o no. La clasificación se realiza en función de una o más claves de clasificación extraídas de cada línea de entrada.
  • De forma predeterminada, toda la entrada se toma como clave de ordenación. El espacio en blanco es el separador de campo predeterminado.

El comando ordenar sigue estas características como se indica a continuación:  

  1. Las líneas que comienzan con un número aparecerán antes de las líneas que comienzan con una letra.
  2. Las líneas que comienzan con una letra que aparece antes en el alfabeto aparecerán antes que las líneas que comienzan con una letra que aparece más adelante en el alfabeto.
  3. Las líneas que comiencen con una letra mayúscula aparecerán antes que las líneas que comiencen con la misma letra en minúscula.

Ejemplos

Suponga que crea un archivo de datos con el nombre archivo.txt: 

Command : 
$cat > file.txt
abhishek
chitransh
satish
rajan
naveen
divyam
harsh

Ordenar un archivo: ahora use el comando ordenar 

Sintaxis: 

$sort filename.txt
Command:
$sort file.txt

Output :
abhishek
chitransh
divyam
harsh
naveen 
rajan
satish

Nota: Este comando en realidad no cambia el archivo de entrada, es decir, file.txt. 

Ordenar función con archivo mixto, es decir, mayúsculas y minúsculas: cuando tenemos un archivo mixto con letras mayúsculas y minúsculas, primero se ordenarán las letras mayúsculas y luego las minúsculas.

Ejemplo: 

Crear un archivo mix.txt 

Command :
$cat > mix.txt
abc
apple
BALL
Abc
bat

Ahora usa el comando ordenar 

Command :
$sort mix.txt
Output :
Abc                                                                                                                                                    
BALL                                                                                                                                                   
abc                                                                                                                                                    
apple                                                                                                                                                  
bat

Opciones con función de clasificación:

1. Opción -o: Unix también nos brinda funciones especiales, como si desea escribir la salida en un nuevo archivo , salida.txt, redirige la salida de esta manera o también puede usar la opción de clasificación integrada -o, que le permite especificar un archivo de salida. 

Usar la opción -o es funcionalmente lo mismo que redirigir la salida a un archivo. 

Nota: Ninguno tiene ventaja sobre el otro. 

Ejemplo: El archivo de entrada es el mismo que se mencionó anteriormente. 

Sintaxis:

$sort inputfile.txt > filename.txt
$sort -o filename.txt inputfile.txt
Command:
$sort file.txt > output.txt 
$sort -o output.txt file.txt
$cat output.txt

Output :
abhishek
chitransh
divyam
harsh
naveen 
rajan
satish

2. Opción -r: clasificación en orden inverso : puede realizar una clasificación en orden inverso utilizando el indicador -r. el indicador -r es una opción del comando sort que ordena el archivo de entrada en orden inverso, es decir, en orden descendente de forma predeterminada. 

Ejemplo: El archivo de entrada es el mismo que se mencionó anteriormente. 

Sintaxis: 

$sort -r inputfile.txt
Command :
$sort -r file.txt
Output :
satish
rajan
naveen 
harsh
divyam
chitransh
abhishek

3. Opción -n : para ordenar un archivo numéricamente , se utiliza la opción -n. La opción -n también está predefinida en Unix como lo están las opciones anteriores. Esta opción se utiliza para ordenar el archivo con datos numéricos presentes en su interior. 

Ejemplo : 

Consideremos un archivo con números: 

Command :
$cat > file1.txt
50
39
15
89
200

Sintaxis:

$sort -n filename.txt
Command :
$sort -n file1.txt
Output :
15
39
50
89
200

4. Opción -nr : Para ordenar un archivo con datos numéricos en orden inverso, podemos usar la combinación de dos opciones como se indica a continuación. 

Ejemplo: El archivo numérico es el mismo que el anterior. 

Sintaxis: 

$sort -nr filename.txt
Command :
$sort -nr file1.txt
Output :
200
89
50
39
15

5. Opción -k : Unix proporciona la función de ordenar una tabla en función de cualquier número de columna utilizando la opción -k. 

Use la opción -k para ordenar en una determinada columna. Por ejemplo, use «-k 2» para ordenar en la segunda columna. 

Ejemplo : 

Vamos a crear una tabla con 2 columnas. 

$cat > employee.txt
manager  5000
clerk    4000
employee  6000
peon     4500
director 9000
guard     3000

Sintaxis:

$sort -k filename.txt
Command :
$sort -k 2n employee.txt
guard    3000
clerk    4000
peon     4500
manager  5000
employee 6000
director 9000

6. Opción -c: esta opción se usa para verificar si el archivo dado ya está ordenado o no y verifica si un archivo ya está ordenado, pase la opción -c para ordenar. Esto escribirá en la salida estándar si hay líneas que están fuera de servicio. La herramienta de clasificación se puede usar para comprender si este archivo está ordenado y qué líneas están desordenadas. 

Ejemplo : 

Supongamos que existe un archivo con una lista de autos llamado cars.txt. 

Audi
Cadillac
BMW
Dodge

Sintaxis:

$sort -c filename.txt
Command :
$sort -c cars.txt
Output :
sort: cars.txt:3: disorder: BMW
 Note : If there is no output then the file is considered to be already sorted 

7. Opción -u: para ordenar y eliminar duplicados , pase la opción -u para ordenar. Esto escribirá una lista ordenada en la salida estándar y eliminará los duplicados. 
Esta opción es útil ya que los duplicados que se eliminan nos dan un archivo redundante. 

Ejemplo: Suponga que existe un archivo con una lista de autos llamado autos.txt. 

Audi
BMW
Cadillac
BMW
Dodge

Sintaxis:

$sort -u filename.txt
Command :
$sort -u cars.txt
$cat cars.txt
Output :
Audi
BMW
Cadillac
Dodge

8. Opción -M: Para ordenar por mes pase la opción -M para ordenar. Esto escribirá una lista ordenada en la salida estándar ordenada por nombre de mes. 

Ejemplo: 

Supongamos que existe el siguiente archivo y se guarda como meses.txt 

$cat > months.txt
February 
January 
March 
August 
September 

Syntax :
$sort -M filename.txt

Usar la opción -M con ordenar nos permite ordenar este archivo.

Command :
$sort -M months.txt
$cat months.txt
Output :
January
February
March
August
September

Aplicación y usos del comando sort:

  1. Puede clasificar cualquier tipo de archivo, ya sea un archivo de tabla, un archivo de texto, un archivo numérico, etc.
  2. La clasificación se puede implementar directamente de un archivo a otro sin que se obstaculice el presente trabajo.
  3. La clasificación de archivos de tablas en función de las columnas se ha hecho mucho más simple y fácil.
  4. Hay tantas opciones disponibles para clasificar de todas las formas posibles.
  5. El uso más beneficioso es que un archivo de datos en particular se puede usar muchas veces ya que no se realizan cambios en el archivo de entrada provisto.
  6. Los datos originales siempre están seguros y no se ven obstaculizados.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *