Upotreba Linux naredbe za sortiranje

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:

Sortiranje tekstualne datoteke

Da biste sortirali linije u odvojenoj Linux datoteki, koristite naredbu sortiranja ovako:

$ sortiraj -k2 test.txt

koji 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.50

Poš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.90

Ako 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.90

i

$ sortiraj -k4 test.txt

proizvodi 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 kn

Obrnuto sortiranje

Opcija -r preklapa sortiranje. Na primjer, koristeći gore navedene rezultate:

$ sortiraj -k4 -r test.txt

prinosi:

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.txt

gdje 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 -k5

Ovo 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.