Stavke koje treba razvrstati moraju biti razgraničene na neki način
Podatke u Linux tekstualnoj datoteci mogu se poredati s naredbom za sortiranje sve dok je svaki element ograničen na neki način. Često, zarez se koristi kao razdjelnik za razgraničene informacije.
Osnovna pravila za razvrstavanje
Naredba sortiranja preusmjerava retke u tekstovnoj datoteci kako bi ih razvrstala numerički i abecednim redom. Zadana pravila za naredbu sortiranja su:
- Tekst koji počinje brojem pojavljuje se prije teksta koji započinje slovom; niži brojevi sortirati prvo.
- Tekst koji počinje slovom koji se pojavljuje u abecedi ranije da se prvo slovo ostalih unosa teksta poravnava prije teksta koji počinje slovom koji se pojavljuje kasnije u abecedi.
- Gdje tekst počinje velikim i malim primjerima istog slova, maleni se primjer prvo poredava.
Razvrstavanje tekstualne datoteke
Da biste razvrstali linije u ograničenoj Linux datoteci, koristite naredbu sortiranja ovako:
$ sort -k2 test.txtkoji razvrstava datoteku "test.txt" prema znakovima koji počinju u drugom stupcu (k2 se odnosi na drugi stupac). Pod pretpostavkom da je sadržaj ulazne datoteke:
1, Justin Timberlake, naslov 545, cijena 7,30 dolara 2, Taylor Swift, naslov 723, cijena 7,90 dolara 3, Mick Jagger, naslov 610, cijena 7,90 dolara 4, Lady Gaga, naslov 118, cijena 7,30 dolara 5, Johnny Cash, naslov 482, cijena 6,50 kn 6, Elvis Presley, naslov 335, cijena 7,30 dolara 7, John Lennon, naslov 271, cijena 7,90 dolara 8, Michael Jackson, naslov 373, cijena 5,50 dolaraBudući da drugi stupac u ovom primjeru sadrži prvo i prezime, sortirani je izlaz raspoređen po prvom slovu prvog imena svakog pojedinca u drugom stupcu - Elvis, John, Johnny, Justin, Lady, Michael, Mick i Taylor , kako je prikazano dolje:
6, Elvis Presley, naslov 335, cijena 6,30 dolara 7, John Lennon, naslov 271, cijena 7,90 dolara 5, Johnny Cash, naslov 482, cijena 6,50 dolara 1, Justin Timberlake, naslov 545, cijena 6,30 dolara 4, Lady Gaga, naslov 118, cijena 6,30 dolara 8, Michael Jackson, naslov 373, cijena 5,50 dolara 3, Mick Jagger, naslov 610, cijena 7,90 dolara 2, Taylor Swift, naslov 723, cijena 7,90 dolaraAko sortirate datoteku s -k3 (koristeći sadržaj retka koji započinje stupac 3 - stupac Title number), izlaz je:
4, Lady Gaga, naslov 118, cijena 6,30 dolara 7, John Lennon, naslov 271, cijena 7,90 dolara 6, Elvis Presley, naslov 335, cijena 6,30 dolara 8, Michael Jackson, naslov 373, cijena 5,50 dolara 5, Johnny Cash, naslov 482, cijena 6,50 kn 1, Justin Timberlake, naslov 545, cijena 6,30 dolara 3, Mick Jagger, naslov 610, cijena 7,90 dolara 2, Taylor Swift, naslov 723, cijena 7,90 dolarai
$ sort -k4 test.txtproizvodi popis prema cijeni:
8, Michael Jackson, naslov 373, cijena 5,50 dolara 1, Justin Timberlake, naslov 545, cijena 6,30 dolara 4, Lady Gaga, naslov 118, cijena 6,30 dolara 6, Elvis Presley, naslov 335, cijena 6,30 dolara 5, Johnny Cash, naslov 482, cijena 6,50 kn 2, Taylor Swift, naslov 723, cijena 7,90 dolara 3, Mick Jagger, naslov 610, cijena 7,90 dolara 7, John Lennon, naslov 271, cijena 7,90 dolaraPreokretanje poretka
Opcija -r poništava sortiranje. Na primjer, pomoću gore navedenih rezultata:
$ sort -k4 -r test.txtprinosi:
7, John Lennon, naslov 271, cijena 7,90 dolara 3, Mick Jagger, naslov 610, cijena 7,90 dolara 2, Taylor Swift, naslov 723, cijena 7,90 dolara 5, Johnny Cash, naslov 482, cijena 6,50 dolara 6, Elvis Presley, naslov 335, cijena 6,30 dolara 4, Lady Gaga, naslov 118, cijena 6,30 dolara 1, Justin Timberlake, naslov 545, cijena 6,30 dolara 8, Michael Jackson, naslov 373, cijena 5,50 dolaraSpremanje sortirane datoteke
Razvrstavanje datoteke ne sprema. Da biste spremili popis poredanih u datoteku, upotrijebite operator preusmjeravanja:
sort -k4 -r test.txt> test_new.txtgdje je "test_new.txt" nova datoteka.
Sortiranje izlaznog signala streama
Također možete primijeniti naredbu sortiranja na izlaz struje, kao što je operater cijevi:
$ ls -al | sort -r-n-k5Ovo razvrstava izlaz popisa datoteka generiranih ls naredbom po veličini datoteke, počevši od najvećih datoteka. -n operator određuje numerički sortiranje umjesto abecednim redom.