14 Linux sort buýrugynyň peýdaly mysallary - 1-nji bölüm


Sort, giriş tekst faýllarynyň setirlerini çap etmek we tertipleşdirilen tertipde ähli faýllary birleşdirmek üçin ulanylýan Linux programmasydyr. Sort buýrugy meýdan bölüji hökmünde boş ýer alýar we giriş faýlyny sort açary hökmünde alýar. Sort buýrugynyň aslynda faýllary tertipleşdirmeýändigini, ýöne çykarylýança gönükdirilýänçä diňe tertiplenen çykyşy çap etmelidigini bellemek möhümdir.

Bu makala, Linux-da sort buýrugyny nädip ulanmalydygyny görkezýän 14 sany peýdaly amaly mysal bilen Linux “sort” buýrugyny çuňňur öwrenmegi maksat edinýär.

1. Ilki bilen “sort” buýruk mysallaryny ýerine ýetirmek üçin tekst faýly (tecmint.txt) dörederis. Işleýän katalogymyz “/ home/$USER/Desktop/tecmint.

Aşakdaky buýrukdaky -e opsiýasy yza gaýtmagy düşündirmäge mümkinçilik berýär we/n echo her setiri täze setire ýazmagy aýdýar.

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

2. “sortlamak” bilen başlamazdan ozal faýlyň mazmunyna we görnüşine göz aýlalyň.

$ cat tecmint.txt

3. Indi aşakdaky buýrugy ulanyp faýlyň mazmunyny tertipläň.

$ sort tecmint.txt

Bellik: aboveokardaky buýruk aslynda tekst faýlynyň mazmunyny tertipleşdirmeýär, diňe terminalda tertiplenen çykyşy görkezýär.

4. “tecmint.txt” faýlyň mazmunyny tertipläň we (sorted.txt) atly faýla ýazyň we pişigiň buýrugy bilen mazmuny barlaň.

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

5. Indi “tecmint.txt” tekst faýlynyň mazmunyny “-r” wyklýuçatelini ulanyp, tersi tertipleşdiriň we çykyşy “reversesorted.txt” faýlyna gönükdiriň. Şeýle hem täze döredilen faýlyň mazmun sanawyny barlaň.

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

6. Jikme-jik mysallar üçin şol bir ýerde täze faýl (lsl.txt) dörederis we öý katalogyňyz üçin “ls -l” çykyşyny ulanyp köpelderis.

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

Indi mazmuny başdaky nyşanlardan däl-de, başga meýdan esasynda tertiplemek üçin mysallar göreris.

7. lsl.txt faýlyň mazmunyny 2-nji sütüniň esasynda tertipläň (simwoliki baglanyşyklaryň sanyny görkezýär).

$ sort -nk2 lsl.txt

Bellik: aboveokardaky mysaldaky -n opsiýasy mazmuny san taýdan tertipläň. Faýly san bahalaryny öz içine alýan sütün esasynda tertiplemek islänimizde “-n” opsiýasy ulanylmaly.

8. lsl.txt faýlyň mazmunyny 9-njy sütün esasynda tertipläň (bu faýllaryň we bukjalaryň ady we san däl).

$ sort -k9 lsl.txt

9. Faýlda sort buýrugyny işletmek hemişe möhüm däl. Hakyky buýruk bilen gönüden-göni terminalda turba geçirip bileris.

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

10. tecmint.txt tekst faýlyndan dublikatlary tertipläň we aýyryň. Dublikatyň aýrylandygyny ýa-da ýokdugyny barlaň.

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

Şu wagta çenli düzgünler (syn edenlerimiz):

  1. Sanlardan başlaýan setirler sanawda ileri tutulýar we başgaça görkezilmänkä (-r) ýokarda ýerleşýär.
  2. Sanawda kiçi harplardan başlaýan setirler ileri tutulýar we başgaça görkezilmänkä (-r) ýokarda ýerleşýär.
  3. Mazmuny başgaça görkezilmedikçä (-r) sözlükde elipbiýiň ýüze çykmagy esasynda görkezilýär.
  4. Buýrugy tertipleşdirmek tertip boýunça her setiri setir hökmünde görüň we soňra elipbiýiň sözlügine baglylykda tertipläň (San saýlanylýar; düzgüne serediň - 1) başgaça görkezilmänkä.

11. Häzirki ýerde üçünji faýl lsla.txt dörediň we ony ls -lA buýrugy bilen köpeldiň.

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

Ls buýrugyna düşünýänler ls -lA=ls -l + Gizlin faýllary bilýärler. Şonuň üçin bu iki faýldaky mazmunyň köpüsi birmeňzeş bolardy.

12. Iki faýlyň mazmunyny standart çykyşda bir gezek tertipläň.

$ sort lsl.txt lsla.txt

Faýllaryň we bukjalaryň gaýtalanmagyna üns beriň.

13. Indi bu iki faýldan dublikatlary nädip tertipleşdirmelidigini, birleşdirilmegini we aýrylmagyny görüp bileris.

$ sort -u lsl.txt lsla.txt

Göçürmeleriň çykyşdan aýrylandygyna üns beriň. Şeýle hem, çykyşy bir faýla gönükdirip, täze faýla ýazyp bilersiňiz.

14. Şeýle hem, bir faýlyň mazmunyny ýa-da çykyşyny birden köp sütüniň esasynda tertipläp bileris. “Ls -l” buýrugynyň çykyşyny 2,5 (San) we 9 (San däl) meýdany boýunça tertipläň.

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

Bularyň hemmesi häzirlikçe. Indiki makalada siziň üçin jikme-jik “sortlamak” buýrugynyň ýene birnäçe mysallaryny ýazarys. Soňra “Tecmint” -e birikdiriň. Paýlaşmagy dowam ediň. Teswir ýazmagy dowam ediň. Bizi halaň we paýlaşyň we ýaýramaga kömek ediň.

Şeýle hem okaň: 7 sany gyzykly Linux “sort” buýruk mysallary - 2-nji bölüm