Koristi Linux Command naredbu

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:

Razvrstavanje tekstualne datoteke

Da biste razvrstali linije u ograničenoj Linux datoteci, koristite naredbu sortiranja ovako:

$ sort -k2 test.txt

koji 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 dolara

Buduć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 dolara

Ako 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 dolara

i

$ sort -k4 test.txt

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

Preokretanje poretka

Opcija -r poništava sortiranje. Na primjer, pomoću gore navedenih rezultata:

$ sort -k4 -r test.txt

prinosi:

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 dolara

Spremanje sortirane datoteke

Razvrstavanje datoteke ne sprema. Da biste spremili popis poredanih u datoteku, upotrijebite operator preusmjeravanja:

sort -k4 -r test.txt> test_new.txt

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

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