Items wat gesorteer moet word, moet op een of ander manier geskei word
Data in 'n Linux-tekslêer kan gesorteer word met die sorteeropdrag solank elke element op een of ander manier geskei is. Dikwels word die komma as skeiding vir afgeleide inligting gebruik.
Basiese reëls vir sortering
Die soort opdrag herrangskik die lyne in 'n tekslêer om hulle numeries en alfabeties te sorteer. Die standaard reëls vir die sorteer opdrag is:
- Teks wat begin met 'n nommer verskyn voor teks wat met 'n brief begin; laer getalle sorteer eerste.
- Teks wat begin met 'n brief wat vroeër in die alfabet voorkom, is dat die eerste letter van ander teksinskrywings gesorteer word voor teks wat begin met 'n letter wat later in die alfabet verskyn.
- Waar teks begin met hoofletters en kleinletters van dieselfde letter, word die kleinletters-voorbeeld eers gesorteer.
Sorteer 'n tekslêer
Om die lyne in 'n afgeleide Linux-lêer te sorteer, gebruik jy die soort opdrag soos volg:
$ sort-k2 test.txtwat die lêer "test.txt" sorteer volgens die karakters wat by die tweede kolom begin (k2 verwys na die tweede kolom). Gestel die inhoud van die insette lêer is:
1, Justin Timberlake, Titel 545, Prys $ 7,30 2, Taylor Swift, Titel 723, Prys $ 7.90 3, Mick Jagger, Titel 610, Prys $ 7.90 4, Lady Gaga, Titel 118, Prys $ 7.30 5, Johnny Cash, Titel 482, Prys $ 6.50 6, Elvis Presley, Titel 335, Prys $ 7,30 7, John Lennon, Titel 271, Prys $ 7.90 8, Michael Jackson, Titel 373, Prys $ 5.50Omdat die tweede kolom in hierdie voorbeeld voor- en achtername bevat, word die gesorteerde uitset gerangskik volgens die eerste letter van die voornaam van elke individu in die tweede kolom-Elvis, John, Johnny, Justin, Lady, Michael, Mick en Taylor. , soos hieronder getoon:
6, Elvis Presley, Titel 335, Prys $ 6,30 7, John Lennon, Titel 271, Prys $ 7.90 5, Johnny Cash, Titel 482, Prys $ 6.50 1, Justin Timberlake, Titel 545, Prys $ 6.30 4, Lady Gaga, Titel 118, Prys $ 6.30 8, Michael Jackson, Titel 373, Prys $ 5.50 3, Mick Jagger, Titel 610, Prys $ 7.90 2, Taylor Swift, Titel 723, Prys $ 7.90As jy die lêer sorteer met -k3 (met die lyninhoud wat begin by kolom 3 - die titelnommer kolom), is die uitset:
4, Lady Gaga, Titel 118, Prys $ 6,30 7, John Lennon, Titel 271, Prys $ 7.90 6, Elvis Presley, Titel 335, Prys $ 6.30 8, Michael Jackson, Titel 373, Prys $ 5.50 5, Johnny Cash, Titel 482, Prys $ 6.50 1, Justin Timberlake, Titel 545, Prys $ 6,30 3, Mick Jagger, Titel 610, Prys $ 7.90 2, Taylor Swift, Titel 723, Prys $ 7.90en
$ sort-k4 test.txtproduseer 'n lys gesorteer volgens prys:
8, Michael Jackson, Titel 373, Prys $ 5.50 1, Justin Timberlake, Titel 545, Prys $ 6,30 4, Lady Gaga, Titel 118, Prys $ 6,30 6, Elvis Presley, Titel 335, Prys $ 6,30 5, Johnny Cash, Titel 482, Prys $ 6.50 2, Taylor Swift, Titel 723, Prys $ 7.90 3, Mick Jagger, Titel 610, Prys $ 7.90 7, John Lennon, Titel 271, Prys $ 7.90Omkering van 'n sortering
Die -r opsie omkeer die sorteer. Byvoorbeeld, gebruik die bogenoemde resultate:
$ sort-k4 -r test.txtopbrengste:
7, John Lennon, Titel 271, Prys $ 7.90 3, Mick Jagger, Titel 610, Prys $ 7.90 2, Taylor Swift, Titel 723, Prys $ 7.90 5, Johnny Cash, Titel 482, Prys $ 6.50 6, Elvis Presley, Titel 335, Prys $ 6.30 4, Lady Gaga, Titel 118, Prys $ 6,30 1, Justin Timberlake, Titel 545, Prys $ 6.30 8, Michael Jackson, Titel 373, Prys $ 5.50'N gesorteerde lêer stoor
Om 'n lêer te sorteer, stoor dit nie. Om die gesorteerde lys in 'n lêer te stoor, gebruik jy die herlei-operateur:
sorteer -k4 -r test.txt> test_new.txtwaar "test_new.txt" die nuwe lêer is.
Sorteer 'n stroomuitset
U kan ook die soort opdrag toepas op die uitvoer van 'n stroom, soos die pyp operateur:
$ ls -al | sorteer -r -n-k5Dit sorteer die uitvoer van die lêerlys wat gegenereer word deur die ls- opdrag volgens lêergrootte, wat begin met grootste lêers. Die -n operateur spesifiseer numeriese sorteer eerder as alfabetiese.