Stavke koje treba sortirati moraju se razdvojiti na neki način
Podaci u tekstualnoj datoteki Linuxa mogu se sortirati sa komandom sortiranja sve dok je svaki element razdvojen na neki način. Često se zarezuje kao separator za razgraničene informacije.
Osnovna pravila za sortiranje
Komanda sorta preuređuje linije u tekstualnoj datoteki da ih sortira numerički i po abecedi. Podrazumevana pravila za komandu sorte su:
- Tekst koji počinje sa brojem pojavljuje se prije teksta koji počinje slovom; niži brojevi se prvo sortiraju.
- Tekst koji počinje slovom koji se pojavio na abecedi ranije je da se prvo slovo drugih unosa teksta sortira pre nego što tekst počne sa slovom koji se pojavljuje kasnije u abecedi.
- Tamo gde tekst počinje velikim i malim primercima istog slova, primjer malog slova se prvo sortira.
Sortiranje tekstualne datoteke
Da biste sortirali linije u odvojenoj Linux datoteki, koristite naredbu sortiranja ovako:
$ sortiraj -k2 test.txtkoji sortira datoteku "test.txt" prema znacima počev od druge kolone (k2 se odnosi na drugu kolonu). Pod pretpostavkom da je sadržaj ulazne datoteke:
1, Justin Timberlake, Naslov 545, Cijena $ 7.30 2, Taylor Swift, Naslov 723, Cijena $ 7.90 3, Mick Jagger, Naslov 610, Cijena $ 7.90 4, Lady Gaga, Titula 118, Cijena $ 7.30 5, Johnny Cash, Naslov 482, Cijena $ 6.50 6, Elvis Presley, Naslov 335, Cijena $ 7.30 7, John Lennon, Naslov 271, Cijena $ 7.90 8, Michael Jackson, Naslov 373, Cijena $ 5.50Pošto druga kolona u ovom primjeru sadrži ime i prezime, sortirani izlaz je raspoređen po prvom slovu imena svakog pojedinca u drugoj koloni - Elvis, John, Johnny, Justin, Lady, Michael, Mick i Taylor , kao što je prikazano u nastavku:
6, Elvis Presley, Naslov 335, Cijena $ 6.30 7, John Lennon, Naslov 271, Cijena $ 7.90 5, Johnny Cash, Naslov 482, Cijena $ 6.50 1, Justin Timberlake, Naslov 545, Cijena $ 6.30 4, Lady Gaga, Titula 118, 8, Majkl Džekson, Naslov 373, Cena $ 5.50 3, Mick Jagger, Naslov 610, Cijena $ 7.90 2, Taylor Swift, Naslov 723, Cijena $ 7.90Ako datoteku sortirate pomoću -k3 (pomoću sadržaja linije počev od stupca 3 - kolona naslovnog broja), izlaz je:
4, Lady Gaga, Naslov 118, Cijena $ 6.30 7, John Lennon, Naslov 271, Cijena $ 7.90 6, Elvis Presley, Naslov 335, Cijena $ 6.30 8, Michael Jackson, Naslov 373, Cijena $ 5.50 5, Johnny Cash, Naslov 482, Cijena 6,50 € 1, Justin Timberlake, Naslov 545, Cijena $ 6.30 3, Mick Jagger, Naslov 610, Cijena $ 7.90 2, Taylor Swift, Naslov 723, Cijena $ 7.90i
$ sortiraj -k4 test.txtproizvodi listu sortiran po cijeni:
8, Majkl Džekson, Naslov 373, Cijena $ 5.50 1, Justin Timberlake, Naslov 545, Cijena $ 6.30 4, Lady Gaga, Titula 118, Cijena 6,30 kn 6, Elvis Presley, Naslov 335, Cijena $ 6,30 5, Johnny Cash, Naslov 482, Cijena 6,50 € 2, Taylor Swift, Naslov 723, Cijena 7,90 kn 3, Mick Jagger, Naslov 610, Cijena 7,90 kn 7, John Lennon, Naslov 271, Cijena 7,90 knObrnuto sortiranje
Opcija -r preklapa sortiranje. Na primjer, koristeći gore navedene rezultate:
$ sortiraj -k4 -r test.txtprinosi:
7, John Lennon, Naslov 271, Cijena $ 7.90 3, Mick Jagger, Naslov 610, Cijena $ 7.90 2, Taylor Swift, Naslov 723, Cijena $ 7.90 5, Johnny Cash, Naslov 482, Cijena $ 6.50 6, Elvis Presley, Naslov 335, 4, Lady Gaga, Titula 118, Cijena $ 6.30 1, Justin Timberlake, Naslov 545, Cijena $ 6.30 8, Michael Jackson, Naslov 373, Cijena $ 5.50Čuvanje sortirane datoteke
Sortiranje datoteke ne čuva. Da biste sačuvali sortiranu listu u datoteci, koristite operatera za preusmjeravanje:
sortiraj -k4 -r test.txt> test_new.txtgdje je "test_new.txt" nova datoteka.
Sortiranje izlaza struje
Možete takođe primijeniti komandu sortiranja na izlaz streama, kao što je operater cijevi:
$ ls -al | sortiraj -r -n -k5Ovo sortira izlaz liste datoteka generisanu od strane ls naredbe po veličini datoteke, počevši od najvećih datoteka. Operator -n specificira numeričko sortiranje pre nego abecedno.