Els elements que s'han d'ordenar han d'estar delimitats d'alguna manera
Les dades d'un fitxer de text de Linux es poden ordenar amb l'ordre d'ordenació sempre que cada element estigui delimitat d'alguna manera. Sovint, la coma s'utilitza com a separador per a informació delimitada.
Regles bàsiques per a la classificació
L'ordenació d'ordenació reordena les línies d'un fitxer de text per ordenar-les numèricament i alfabèticament. Les regles predeterminades per a l'ordre d'ordenació són:
- El text que comença amb un número apareix abans del text que comença amb una lletra; ordenar els nombres més baixos primer.
- Text que comença amb una lletra que apareix a l'alfabet abans que la primera lletra d'altres entrades de text està ordenada abans del text que comença amb una lletra que apareix més tard en l'alfabet.
- Quan el text comença amb majúscules i minúscules de la mateixa lletra, la instància de minúscules s'ordena primer.
S'està ordenant un fitxer de text
Per ordenar les línies en un fitxer delimitat de Linux, utilitzeu l' ordre de classificació com aquest:
$ sort-k2 test.txtque ordena el fitxer "test.txt" d'acord amb els caràcters que comencen a la segona columna (k2 es refereix a la segona columna). Si suposem que el contingut del fitxer d'entrada és:
1, Justin Timberlake, Títol 545, Preu $ 7.30 2, Taylor Swift, Títol 723, Preu $ 7.90 3, Mick Jagger, Títol 610, Preu $ 7.90 4, Lady Gaga, Títol 118, Preu $ 7.30 5, Johnny Cash, Títol 482, Preu $ 6.50 6, Elvis Presley, títol 335, preu 7,30 $ 7, John Lennon, títol 271, preu 7,90 $ 8, Michael Jackson, títol 373, preu 5,50 $Com que la segona columna d'aquest exemple conté noms i cognoms, la sortida ordenada està ordenada per la primera lletra del primer nom de cada individu a la segona columna: Elvis, John, Johnny, Justin, Lady, Michael, Mick i Taylor. , tal com es mostra a continuació:
6, Elvis Presley, títol 335, preu 6,30 $ 7, John Lennon, títol 271, preu 7,90 $ 5, Johnny Cash, títol 482, preu 6,50 $ 1, Justin Timberlake, títol 545, preu 6,30 $ 4, Lady Gaga, títol 118, preu 6,30 $ 8, Michael Jackson, títol 373, preu 5,50 $ 3, Mick Jagger, títol 610, preu 7,90 $ 2, Taylor Swift, títol 723, preu 7,90 USDSi ordeneu el fitxer amb -k3 (utilitzant els continguts de la línia a partir de la columna 3), la sortida és:
4, Lady Gaga, títol 118, preu 6,30 $ 7, John Lennon, títol 271, preu 7,90 $ 6, Elvis Presley, títol 335, preu 6,30 $ 8, Michael Jackson, títol 373, preu 5,50 $ 5, Johnny Cash, títol 482, preu 6,50 $ 1, Justin Timberlake, Títol 545, Preu 6,30 $ 3, Mick Jagger, Títol 610, Preu 7,90 $ 2, Taylor Swift, Títol 723, Preu 7,90 $i
$ sort-k4 test.txtprodueix una llista ordenada per preu:
8, Michael Jackson, títol 373, Preu $ 5.50 1, Justin Timberlake, títol 545, preu 6,30 $ 4, Lady Gaga, títol 118, preu 6,30 $ 6, Elvis Presley, títol 335, preu 6,30 $ 5, Johnny Cash, títol 482, preu 6,50 $ 2, Taylor Swift, títol 723, preu 7,90 $ 3, Mick Jagger, títol 610, preu 7,90 $ 7, John Lennon, títol 271, preu 7,90 $Inverteix una ordenació
L'opció -r inverteix la classificació. Per exemple, utilitzant els resultats anteriors:
$ sort-k4 -r test.txtrendiments:
7, John Lennon, Títol 271, Preu 7,90 $ 3, Mick Jagger, Títol 610, Preu 7,90 $ 2, Taylor Swift, Títol 723, Preu 7,90 $ 5, Johnny Cash, Títol 482, Preu 6,50 $ 6, Elvis Presley, Títol 335, Preu 6,30 $ 4, Lady Gaga, Títol 118, Preu $ 6,30 1, Justin Timberlake, Títol 545, Preu 6,30 $ 8, Michael Jackson, Títol 373, Preu $ 5,50S'està desant un fitxer ordenat
L'ordenació d'un fitxer no el guarda. Per desar la llista ordenada en un fitxer, utilitzeu l'operador de redirecció:
ordenar-k4 -r test.txt> test_new.txton "test_new.txt" és el nou fitxer.
Classificació d'una sortida de corrent
També podeu aplicar l'ordre d'ordenació a la sortida d'un flux, com ara l'operador de canonades:
$ ls -al | ordenar -r -n -k5Això ordena la sortida de la llista de fitxers generada per la comanda ls per la mida del fitxer, començant per fitxers més grans. L'operador -n especifica la classificació numèrica en lloc d'alfabètic.