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.