14 koristni primeri ukaza za razvrščanje Linuxa - 1. del


Sort je program Linux, ki se uporablja za tiskanje vrstic vhodnih besedilnih datotek in združevanje vseh datotek v razvrščenem vrstnem redu. Ukaz za razvrščanje vzame prazen prostor kot ločilo polja in celotno vhodno datoteko kot ključ za razvrščanje. Pomembno je opozoriti, da ukaz za razvrščanje datotek dejansko ne razvršča, temveč samo natisne razvrščeni izhod, dokler izhoda ne preusmerite.

Cilj tega članka je globok vpogled v ukaz Linux za razvrščanje s 14 koristnimi praktičnimi primeri, ki vam bodo pokazali, kako uporabljati ukaz za razvrščanje v Linuxu

1. Najprej bomo ustvarili besedilno datoteko (tecmint.txt) za izvajanje primerov ukaza 'sort'. Naš delovni imenik je ‘/ home/$USER/Desktop/tecmint.

Možnost ‘-e’ v spodnjem ukazu omogoča interpretacijo poševnice nazaj in/n sporoča echo, naj vsak niz zapiše v novo vrstico.

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

2. Preden začnemo z razvrščanjem, si oglejmo vsebino datoteke in njen videz.

$ cat tecmint.txt

3. Zdaj razvrstite vsebino datoteke z naslednjim ukazom.

$ sort tecmint.txt

Opomba: Zgornji ukaz dejansko ne razvršča vsebine besedilne datoteke, ampak prikazuje samo razvrščeni izhod na terminalu.

4. Razvrstite vsebino datoteke ‘tecmint.txt’ in jo zapišite v datoteko z imenom (sorted.txt) ter z ukazom cat preverite vsebino.

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

5. Zdaj razvrstite vsebino besedilne datoteke 'tecmint.txt' v obratnem vrstnem redu s pomočjo stikala '-r' in preusmerite izhod v datoteko 'reversesorted.txt'. Preverite tudi seznam vsebine novo ustvarjene datoteke.

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

6. Na istem mestu bomo ustvarili novo datoteko (lsl.txt) za podrobne primere in jo zapolnili s pomočjo izhoda 'ls -l' za vaš domači imenik.

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

Zdaj bomo videli primere za razvrščanje vsebine na podlagi drugega polja in ne privzetih začetnih znakov.

7. Vsebino datoteke »lsl.txt« razvrstite na podlagi 2. stolpca (ki predstavlja število simbolnih povezav).

$ sort -nk2 lsl.txt

Opomba: Možnost ‘-n’ v zgornjem primeru razvrsti vsebino številčno. Možnost '-n' je treba uporabiti, če smo želeli datoteko razvrstiti na podlagi stolpca, ki vsebuje številčne vrednosti.

8. Vsebino datoteke »lsl.txt« razvrstite na podlagi 9. stolpca (ki je ime datotek in map in ni numerično).

$ sort -k9 lsl.txt

9. V datoteki ni vedno treba zagnati ukaza za razvrščanje. Lahko ga usmerimo neposredno na terminal z dejanskim ukazom.

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

10. Razvrstite in odstranite dvojnike iz besedilne datoteke tecmint.txt. Preverite, ali je bil dvojnik odstranjen ali ne.

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

Dosedanja pravila (kar smo opazili):

  1. Na seznamu so prednostne vrstice, ki se začnejo s številkami in so na vrhu, dokler ni določeno drugače (-r).
  2. Vrstice, ki se začnejo z malimi črkami, so na seznamu prednostne in ležijo na vrhu, dokler ni določeno drugače (-r).
  3. Vsebina je navedena na podlagi pojavljanja abeced v slovarju, dokler ni določeno drugače (-r).
  4. Privzeto ukaz za razvrščanje obravnava vsako vrstico kot niz in jo nato razvrsti, odvisno od pojavnosti abeced v slovarju (prednostno številčno; glej pravilo 1), dokler ni določeno drugače.

11. Ustvarite tretjo datoteko "lsla.txt" na trenutni lokaciji in jo zapolnite z izhodom ukaza "ls -lA".

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

Tisti, ki razumejo ukaz 'ls', vedo, da je 'ls -lA' = 'ls -l' + skrite datoteke. Torej bi bila večina vsebine v teh dveh datotekah enaka.

12. Vsebino dveh datotek naenkrat razvrstite po običajnem izhodu.

$ sort lsl.txt lsla.txt

Upoštevajte ponavljanje datotek in map.

13. Zdaj lahko vidimo, kako razvrstiti, združiti in odstraniti dvojnike iz teh dveh datotek.

$ sort -u lsl.txt lsla.txt

Upoštevajte, da so bili dvojniki izpuščeni iz izhoda. Izhod lahko tudi zapišete v novo datoteko tako, da izhod preusmerite v datoteko.

14. Vsebino datoteke ali izhodne podatke lahko razvrstimo tudi na podlagi več kot enega stolpca. Razvrstite izhod ukaza 'ls -l' na podlagi polj 2,5 (številsko) in 9 (neštevilsko).

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

To je vse za zdaj. V naslednjem članku bomo podrobneje zajeli še nekaj primerov ukaza 'razvrsti'. Do takrat ostanite z nami in povezani s Tecmintom. Nadaljujte z deljenjem. Nadaljujte s komentiranjem. Všečkajte nas in delite z nami ter nam pomagajte, da se širimo.

Preberite tudi: 7 zanimivih primerov ukazov za razvrščanje Linuxa - 2. del