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):
- Sanlardan başlaýan setirler sanawda ileri tutulýar we başgaça görkezilmänkä (-r) ýokarda ýerleşýär.
- Sanawda kiçi harplardan başlaýan setirler ileri tutulýar we başgaça görkezilmänkä (-r) ýokarda ýerleşýär.
- Mazmuny başgaça görkezilmedikçä (-r) sözlükde elipbiýiň ýüze çykmagy esasynda görkezilýär.
- 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