14 Korisni primjeri naredbe za razvrstavanje Linuxa - 1. dio


Sort je Linux program koji se koristi za ispis redaka ulaznih tekstualnih datoteka i spajanje svih datoteka poredanim redoslijedom. Naredba za sortiranje uzima prazan prostor kao odvajač polja, a cijela ulazna datoteka kao ključ za sortiranje. Važno je primijetiti da naredba za sortiranje zapravo ne sortira datoteke, već samo ispisuje sortirani izlaz, sve dok ne preusmjerite izlaz.

Ovaj članak ima za cilj duboki uvid u Linux naredbu 'sort' s 14 korisnih praktičnih primjera koji će vam pokazati kako koristiti naredbu sort u Linuxu.

1. Prvo ćemo stvoriti tekstualnu datoteku (tecmint.txt) za izvršavanje primjera naredbe 'sort'. Naš radni direktorij je ‘/ home/$USER/Desktop/tecmint.

Opcija '-e' u naredbi ispod omogućuje tumačenje kose crte i/n govori echou da svaki niz upiše u novi redak.

$ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. Prije nego što započnemo s ‘sort’, pogledajmo sadržaj datoteke i način na koji ona izgleda.

$ cat tecmint.txt

3. Sad sortirajte sadržaj datoteke pomoću sljedeće naredbe.

$ sort tecmint.txt

Napomena: Gornja naredba zapravo ne razvrstava sadržaj tekstualne datoteke, već prikazuje sortirani izlaz na terminalu.

4. Razvrstajte sadržaj datoteke ‘tecmint.txt’ i zapišite je u datoteku pod nazivom (sorted.txt) i provjerite sadržaj pomoću naredbe cat.

$ sort tecmint.txt > sorted.txt
$ cat sorted.txt

5. Sad sortirajte sadržaj tekstualne datoteke "tecmint.txt" obrnutim redoslijedom pomoću prekidača "-r" i preusmjerite izlaz u datoteku "reversesorted.txt". Također provjerite popis sadržaja novostvorene datoteke.

$ sort -r tecmint.txt > reversesorted.txt
$ cat reversesorted.txt

6. Idemo stvoriti novu datoteku (lsl.txt) na istom mjestu za detaljne primjere i popuniti je pomoću izlaza "ls -l" za vaš kućni direktorij.

$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
$ cat lsl.txt

Sada ćemo vidjeti primjere za sortiranje sadržaja na temelju drugog polja, a ne zadanih početnih znakova.

7. Razvrstajte sadržaj datoteke 'lsl.txt' na temelju 2. stupca (koji predstavlja broj simboličkih poveznica).

$ sort -nk2 lsl.txt

Napomena: Opcija '-n' u gornjem primjeru sortira sadržaj numerički. Opcija '-n' mora se koristiti kada smo htjeli sortirati datoteku na temelju stupca koji sadrži numeričke vrijednosti.

8. Razvrstajte sadržaj datoteke 'lsl.txt' na temelju 9. stupca (koji je naziv datoteka i mapa i nije numerički).

$ sort -k9 lsl.txt

9. Nije uvijek bitno pokrenuti naredbu sort na datoteci. Možemo ga izravno poslati na terminal pomoću stvarne naredbe.

$ ls -l /home/$USER | sort -nk5

10. Sortiranje i uklanjanje duplikata iz tekstualne datoteke tecmint.txt. Provjerite je li duplikat uklonjen ili nije.

$ cat tecmint.txt
$ sort -u tecmint.txt

Dosadašnja pravila (ono što smo primijetili):

  1. Na popisu su preferirane linije koje počinju brojevima i leže na vrhu dok nije drugačije naznačeno (-r).
  2. Redovi koji počinju malim slovima poželjni su na popisu i leže na vrhu dok nije drugačije naznačeno (-r).
  3. Sadržaj se navodi na temelju pojavljivanja abeceda u rječniku dok nije drugačije naznačeno (-r).
  4. Naredba za sortiranje prema zadanim postavkama tretira svaki redak kao niz, a zatim ga sortirajte ovisno o pojavljivanju abeceda u rječniku (poželjno numeričko; pogledajte pravilo - 1) dok nije drugačije određeno.

11. Stvorite treću datoteku "lsla.txt" na trenutnom mjestu i popunite je izlazom naredbe "ls -lA".

$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
$ cat lsla.txt

Oni koji razumiju naredbu 'ls' znaju da je 'ls -lA' = 'ls -l' + skrivene datoteke. Dakle, većina sadržaja u ove dvije datoteke bila bi ista.

12. Razvrstajte sadržaj dviju datoteka na standardni izlaz u jednom potezu.

$ sort lsl.txt lsla.txt

Primijetite ponavljanje datoteka i mapa.

13. Sada možemo vidjeti kako sortirati, spojiti i ukloniti duplikate iz ove dvije datoteke.

$ sort -u lsl.txt lsla.txt

Primijetite da su duplikati izostavljeni iz rezultata. Također, možete zapisati izlaz u novu datoteku preusmjeravanjem izlaza u datoteku.

14. Također možemo sortirati sadržaj datoteke ili izlaz na temelju više stupaca. Razvrstajte izlaz naredbe 'ls -l' na temelju polja 2,5 (numeričko) i 9 (ne numeričko).

$ ls -l /home/$USER | sort -t "," -nk2,5 -k9

To je sve za sada. U sljedećem ćemo članku detaljno objasniti još nekoliko primjera naredbe 'sortiraj'. Do tada ostanite uz nas i povezani s Tecmintom. Nastavite dijeliti. Nastavite komentirati. Lajkaj nas i dijeli i pomozi nam da se proširimo.

Pročitajte također: 7 zanimljivih primjera naredbi za "sortiranje" Linuxa - 2. dio