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


U našem prošlom članku obradili smo razne primjere naredbe ‘sort’. Ako ste propustili, možete nadoknaditi slijedeći poveznicu u nastavku. U ovom postu nastavit ćemo tamo gdje smo stali u prethodnom članku, kako bismo pokrili preostale aspekte naredbe. Na taj će način oba članka zajedno poslužiti kao opsežan vodič za naredbu ‘sort’ u Linuxu.

Prije nego što nastavimo, izradite 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. Razvrstavanje sadržaja datoteke po mjesecu

Sljedeća naredba razvrstava sadržaj datoteke “month.txt” kronološkim redoslijedom na temelju kratice ili naziva mjeseca pomoću opcije '-M' koja upućuje 'sort' naredba za tretiranje podataka kao datume i njihovo sortiranje u skladu s tim.

sort -M month.txt

16. Razvrstavanje izlaza prema veličini datoteke u formatu čitljivom za čovjeka

Sljedeća naredba kombinira naredbe ‘ls’ i ‘sort’ za izvođenje dva zadatka. Prvo ispisuje sadržaj korisničkog matičnog direktorija u dugom formatu, a zatim prosljeđuje ovaj popis direktorija naredbi 'sort' za ispis veličina datoteka u formatu čitljivom za čovjeka, olakšavajući prepoznavanje 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.

Za provjeru statusa sortiranja obiju datoteka, upotrijebit ćemo naredbu 'sort', koja će nam omogućiti da potvrdimo ostaje li 'sorted.txt' u ispravnom redoslijedu i zahtijeva li 'lsl.txt' sortiranje.

sort -c sorted.txt

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

sort -c lsl.txt

18. Rukovanje razdjelnicima kada se ne koriste razmaci u datoteci

Ako je razdjelnik (razdjelnik) između riječi razmak, naredba ‘razvrstaj’ automatski tumači sve što je iza vodoravnog razmaka kao novu riječ. Ali što se događa kada graničnik nije razmak?

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

Napravite tekstualnu datoteku u kojoj je sadržaj odvojen znakom +. Koristite naredbu cat za provjeru sadržaja 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 ovu datoteku na temelju 1. polja koje je numeričko.

sort -t '+' -nk1 delimiter.txt

Drugo se temelji na 4. polju koje nije numeričko.

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

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

Poredajte izlaz naredbe ls -l za svoj matični direktorij na temelju petog stupca, koji predstavlja 'količinu podataka', slučajnim redoslijedom.

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

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

Kao što je jasno iz Pravila broj – 2 iz prošlog članka, naredba sort preferira retke koji počinju malim slovima u odnosu na velika slova. Također provjerite 3. primjer u prošlom članku, gdje se niz 'laptop' pojavljuje prije niza 'LAPTOP'.

20. Nadjačavanje zadanih postavki sortiranja

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

Da biste to učinili, pokrenite donji kod u odzivniku naredbenog retka.

export LC_ALL=C

Zatim sortirajte tekstualnu datoteku 'tecmint.txt' nadjačavajući zadanu postavku sortiranja.

sort tecmint.txt

Ne zaboravite usporediti rezultat s onim koji ste postigli u primjeru 3, a također možete koristiti opciju '-f' aka '--ignore- case' da biste dobili dobro organiziran izlaz.

sort -f tecmint.txt

21. Kombiniranje dviju ulaznih datoteka u jednoj operaciji

Što kažete na pokretanje 'sortiranja' na dvije ulazne datoteke i njihovo spajanje u jednom potezu?

Stvorimo dvije tekstualne datoteke, naime ‘file1.txt’ i ‘file2.txt’, i popunimo ih nekim podacima. U 'file1.txt' ćemo dodati brojeve kao što je prikazano u nastavku. 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 obje datoteke.

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

Zaključak

Zaključno, ovaj članak je istražio različite aspekte naredbe ‘sort’ u Linuxu. Počeli smo s osnovnim razvrstavanjem po abecednom redu, upustili se u numeričko i datumsko razvrstavanje, pa smo se čak dotakli i prilagođenih graničnika. Također smo naučili kako nadjačati zadane postavke sortiranja da bi odgovarale našim potrebama.

Štoviše, razgovarali smo o tehnikama za provjeru je li datoteka već sortirana i kombiniranje operacija 'sortiranja' za višestruke ulazne datoteke. Sa znanjem stečenim ovdje, na raspolaganju vam je moćan alat za učinkovito sortiranje i organiziranje podataka u Linux okruženju.

Nadamo se da je ovaj članak bio pronicljiv i koristan za vaše napore u naredbenom retku. Nastavite istraživati, učiti i svladavati umjetnost 'sortiranja' kako biste unaprijedili svoje vještine Linuxa.