Usos do comando Ordenar de Linux

Os elementos a clasificar deben estar delimitados dalgunha forma

Os datos dun ficheiro de texto Linux pódense ordenar co comando ordenar sempre que cada elemento estea delimitado dalgunha forma. Con frecuencia, a coma úsase como separador para información delimitada.

Regras básicas para a selección

O comando sort reorganiza as liñas nun ficheiro de texto para clasificalas numéricamente e alfabéticamente. As regras predeterminadas para o comando sort son:

Ordenar un ficheiro de texto

Para ordenar as liñas nun ficheiro delimitado de Linux, emprega o comando sort coma este:

$ sort-k2 test.txt

que ordena o ficheiro "test.txt" de acordo cos caracteres que comezan na segunda columna (k2 refírese á segunda columna). Supoñendo que o contido do ficheiro de entrada é:

1, Justin Timberlake, Título 545, Prezo $ 7.30 2, Taylor Swift, Título 723, Prezo $ 7.90 3, Mick Jagger, Título 610, Prezo $ 7.90 4, Lady Gaga, Título 118, Prezo $ 7.30 5, Johnny Cash, Título 482, Prezo $ 6.50 6, Elvis Presley, Título 335, Prezo de 7,30 dólares 7, John Lennon, Título 271, Prezo 7,90 dólares 8, Michael Jackson, Título 373, Prezo 5,50 dólares.

Debido a que a segunda columna neste exemplo contén nomes e apelidos, a saída ordenada está ordenada pola primeira letra do primeiro nome de cada individuo na segunda columna: Elvis, John, Johnny, Justin, Lady, Michael, Mick e Taylor. , como se mostra a continuación:

6, Elvis Presley, Título 335, Prezo de 6,30 dólares 7, John Lennon, Título 271, Prezo de 7,90 dólares 5, Johnny Cash, Título 482, Prezo de 6,50 dólares 1, Justin Timberlake, Título 545, Prezo 6,30 dólares 4, Lady Gaga, Título 118, Prezo 6,30 dólares. 8, Michael Jackson, Título 373, Prezo de 5,50 dólares 3, Mick Jagger, Título 610, Prezo de 7,90 dólares 2, Taylor Swift, Título 723, Prezo 7,90 dólares.

Se clasifica o ficheiro con -k3 (empregando os contidos da liña que comezan na columna 3, a columna do número do título), a saída é:

4, Lady Gaga, Título 118, Prezo de 6,30 dólares 7, John Lennon, Título 271, Prezo de US $ 7,90 6, Elvis Presley, Título 335, Prezo 6,30 dólares 8, Michael Jackson, Título 373, Prezo 5,50 dólares 5, Johnny Cash, Título 482, Prezo 6,50 dólares. 1, Justin Timberlake, Título 545, Prezo 6,30 dólares 3, Mick Jagger, Título 610, Prezo 7,90 dólares 2, Taylor Swift, Título 723, Prezo 7,90 dólares.

e

$ sort-k4 test.txt

produce unha lista ordenada por prezo:

8, Michael Jackson, Título 373, Prezo de 5,50 dólares 1, Justin Timberlake, Título 545, Prezo 6,30 dólares 4, Lady Gaga, Título 118, Prezo 6,30 dólares 6, Elvis Presley, Título 335, Prezo 6,30 dólares 5, Johnny Cash, Título 482, Prezo 6,50 dólares. 2, Taylor Swift, Título 723, Prezo de 7,90 dólares 3, Mick Jagger, Título 610, Prezo 7,90 dólares 7, John Lennon, Título 271, Prezo 7,90 dólares.

Inverter un Ordenar

A opción -r invierte a selección. Por exemplo, usando os resultados anteriores:

$ sort-k4 -r test.txt

rendementos:

7, John Lennon, Título 271, Prezo $ 7.90 3, Mick Jagger, Título 610, Prezo de US $ 7,90 2, Taylor Swift, Título 723, Prezo $ 7,90 5, Johnny Cash, Título 482, Prezo 6,50 dólares 6, Elvis Presley, Título 335, Prezo 6,30 dólares. 4, Lady Gaga, Título 118, Prezo de 6,30 dólares 1, Justin Timberlake, Título 545, Prezo 6,30 dólares 8, Michael Jackson, Título 373, Prezo 5,50 dólares.

Gardando un ficheiro ordenado

Ordenar un ficheiro non o garda. Para gardar a lista ordenada nun ficheiro, emprega o operador de redirección:

sort -k4 -r test.txt> test_new.txt

onde "test_new.txt" é o novo ficheiro.

Clasificación dunha saída de fluxo

Tamén pode aplicar o comando sort para a saída dunha transmisión, como o operador de canalización:

$ ls -al | ordenar -r -n -k5

Isto ordena a saída da listaxe de ficheiros xerada polo comando ls por tamaño de ficheiro, comezando cos ficheiros máis grandes. O operador -n especifica a clasificación numérica en vez de alfabética.