7 zanimljivih primjera naredbi 'sort' za Linux - 2. dio


U našem posljednjem članku pokrili smo različite primjere naredbe „sort“. Ako ste ga propustili, možete ga nadoknaditi prateći link ispod. U ovom postu nastavit ćemo od mjesta gdje smo stali u prethodnom članku, kako bismo pokrili preostale aspekte komande. Na ovaj način će oba članka zajedno poslužiti kao sveobuhvatan vodič za Linux naredbu „sort“.

Prije nego što nastavimo dalje, kreirajte tekstualnu datoteku pod nazivom „month.txt“ i popunite je podacima navedenim u nastavku.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Sortiranje sadržaja datoteke po mjesecima

Sljedeća naredba sortira sadržaj datoteke “month.txt” hronološkim redoslijedom na osnovu skraćenice ili naziva mjeseca koristeći opciju '-M' koja daje upute '< naredbasort' za tretiranje podataka kao datuma i njihovo sortiranje u skladu s tim.

sort -M month.txt

16. Sortiranje izlaza prema veličini datoteke u formatu koji je čitljiv

Sljedeća naredba kombinuje naredbe „ls“ i „sort“ za obavljanje dva zadatka. Prvo, on navodi sadržaj korisničkog kućnog direktorija u dugom formatu, a zatim prenosi ovaj popis direktorija na komandu 'sort' za ispis veličina datoteka u formatu čitljivom za ljude, što olakšava identifikaciju najvećih i najmanjih datoteka u imenik.

ls -l /home/$USER | sort -h -k5

17. Provjera dosljednosti sortiranih datoteka

U prethodnom članku generirali smo dvije tekstualne datoteke: 'sorted.txt' u primjeru broj 4 i 'lsl.txt' u primjeru broj 6. Svjesni smo da ' sorted.txt' je već sortiran, dok 'lsl.txt' nije.

Da bismo provjerili status sortiranja obje datoteke, upotrijebit ćemo naredbu 'sort', koja će nam omogućiti da potvrdimo da li 'sorted.txt' ostaje u ispravnom redoslijedu i da li 'lsl.txt' zahtijeva sortiranje.

sort -c sorted.txt

Ako vrati 0, znači da je datoteka sortirana i da nema sukoba.

sort -c lsl.txt

18. Rukovanje graničnicima kada se ne koriste razmaci u datoteci

Ako je razdjelnik (separator) između riječi razmak, naredba "sort" automatski tumači sve iza horizontalnog razmaka kao novu riječ. Ali šta se dešava kada graničnik nije razmak?

Razmotrite tekstualnu datoteku čiji je sadržaj odvojen nečim drugim osim razmakom kao što je '|' ili '\' ili '+' ili '.' ili ...

Kreirajte tekstualnu datoteku u kojoj je sadržaj odvojen znakom +. Koristite naredbu cat da provjerite sadržaj datoteke.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt

Sada sortirajte ovaj fajl na osnovu 1. polja koje je brojčano.

sort -t '+' -nk1 delimiter.txt

Drugo je bazirano na 4. polju koje nije numeričko.

Ako je graničnik Tab, možete koristiti $'\t' umjesto '+', kao što je prikazano u gornjem primjeru.

19. Nasumično sortiranje izlaza prema veličini datoteke

Sortirajte izlaz naredbe ls -l za vaš početni direktorij na osnovu pete kolone, koja predstavlja 'količinu podataka', nasumičnim redoslijedom.

ls -l /home/avi/ | sort -k5 -R 

Svaki put kada pokrenete gornji dio skripte, vjerovatno ćete dobiti drugačiji rezultat jer se rezultat generira nasumično.

Kao što je jasno iz Broj pravila – 2 iz posljednjeg članka, naredba sortiraj preferira redove koji počinju malim slovima u odnosu na velika slova. Također provjerite primjer 3 u posljednjem članku, gdje se niz „laptop“ pojavljuje prije niza „LAPTOP“.

20. Nadjačavanje zadanih postavki sortiranja

Kako poništiti zadanu preferenciju sortiranja? Prije nego što možemo nadjačati zadanu preferenciju sortiranja, moramo eksportirati varijablu okruženja 'LC_ALL' u 'C'.

Da biste to učinili, pokrenite donji kod u promptu komandne linije.

export LC_ALL=C

A zatim sortirajte tekstualnu datoteku „tecmint.txt“ nadjačavajući zadane postavke sortiranja.

sort tecmint.txt

Ne zaboravite da uporedite rezultat sa onim koji ste postigli u primjeru 3 i također možete koristiti opciju '-f' aka '--ignore- case' da dobijete dobro organizovani izlaz.

sort -f tecmint.txt

21. Kombiniranje dvije ulazne datoteke u jednoj operaciji

Kako bi bilo da pokrenete „sort“ na dva ulazna fajla i da ih spojite u jednom potezu?

Kreirajmo dvije tekstualne datoteke, odnosno „file1.txt“ i „file2.txt“, i popunimo ih nekim podacima. U 'file1.txt', dodaćemo brojeve kao što je prikazano ispod. Također ćemo koristiti naredbu cat za pregled sadržaja datoteke

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

I popunite drugu datoteku „file2.txt“ nekim podacima kao.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Sada sortirajte i spojite izlaz oba fajla.

join <(sort -n file1.txt) <(sort file2.txt)

Zaključak

U zaključku, ovaj članak je istražio različite aspekte naredbe „sort“ u Linuxu. Počeli smo sa osnovnim sortiranjem po abecednom redu, upustili smo se u numeričko sortiranje i sortiranje na osnovu datuma, pa smo se čak dotakli i prilagođenih graničnika. Također smo naučili kako da zaobiđemo zadane postavke sortiranja kako bi odgovarale našim potrebama.

Štaviše, raspravljali smo o tehnikama za provjeru da li je datoteka već sortirana i kombiniranju operacija „sort“ za više ulaznih datoteka. Sa znanjem stečenim ovdje, imate na raspolaganju moćan alat za efikasno sortiranje i organiziranje podataka u Linux okruženju.

Nadamo se da je ovaj članak bio pronicljiv i koristan za vaše napore u komandnoj liniji. Nastavite da istražujete, učite i savladavate umjetnost 'sortiranja' kako biste poboljšali svoje Linux vještine.