Saltar al contenido

Comando SORT en Linux / Unix con ejemplos

septiembre 23, 2021
gfg 200x200 min

El comando SORT se usa para ordenar un archivo, ordenando 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 la concatenación de todos los archivos enumerados en su lista de argumentos en orden ordenado.
  • El comando sort es una utilidad de línea de comandos para clasificar 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 sort 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 clasificación. El espacio en blanco es el separador de campo predeterminado.

El comando sort 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 de las líneas que comienzan con una letra que aparece más adelante en el alfabeto.
  3. Las líneas que comienzan con una letra minúscula aparecerán antes de las líneas que comienzan con la misma letra en mayúscula.

Ejemplos de

Suponga que crea un archivo de datos con el nombre file.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.

Función de clasificación con archivo de mezcla, es decir, mayúsculas y minúsculas: Cuando tenemos un archivo de mezcla con letras mayúsculas y minúsculas, primero se ordenarían las letras mayúsculas y luego las minúsculas.

Ejemplo:

Crea un archivo mix.txt

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

Ahora usa el comando sort

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

Opciones con función de clasificación:

1. -o Opción: Unix también nos proporciona facilidades especiales, como si desea escribir el salida a un nuevo archivo, output.txt, redirige la salida de esta manera o también puede usar la opción de clasificación incorporada -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. -r Opción: clasificación en orden inverso: Puede realizar una ordenació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 por defecto.

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. -n Opción: Para ordenar un archivo numéricamente utiliza la opción –n. La opción -n también está predefinida en Unix como 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. -nr opción: 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. -k Opción: Unix proporciona la función de ordenar una tabla en el base de cualquier número de columna usando la opción -k.

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

Ejemplo :

Creemos 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. -c opción: Esta opción se utiliza para comprobar si el el archivo dado ya está ordenado o no & comprueba 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 no funcionan. La herramienta de ordenación se puede utilizar para comprender si este archivo está ordenado y qué líneas están desordenadas.

Ejemplo :

Suponga 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. -u opción: 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 cars.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. -M Opción: 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:

Suponga que el siguiente archivo existe y se guarda como months.txt

$ cat > months.txt
February 
January 
March 
August 
September 

Syntax :
$ sort -M filename.txt

Usar la opción -M con sort 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 ordenar 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 el trabajo actual se vea obstaculizado.
  3. La clasificación de archivos de tablas en base a columnas se ha simplificado y simplificado.
  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 utilizar muchas veces, ya que no se realiza ningún cambio en el archivo de entrada proporcionado.
  6. Los datos originales siempre están seguros y no se ven obstaculizados.

close