Linux Terminalynda gyzykly - Word we Nyşan hasaplary bilen oýnaň


Linux buýruk setiriniň töwereginde gaty gyzykly we köp ýadaw meseläni entek aňsatlyk bilen ýerine ýetirip bolýar. Sözler we nyşanlar bilen oýnamak, tekst faýlyndaky ýygylygy we ş.m. bu makalada görjek zadymyz.

Tekst faýlyndaky sözleri we nyşanlary dolandyrmak üçin Linux buýruk setirini üýtgetmek üçin kelläme gelýän ýeke-täk buýruk wc buýrugydyr.

Söz sanamagy aňladýan “wc” buýrugy, tekst faýlyndan “Newline”, söz we baýt sanlaryny çap etmäge ukyply.

Tekst faýlyny derňemek üçin kiçi skriptler bilen işlemek üçin tekst faýly bolmaly. Birmeňzeşligi saklamak üçin, aşakda görkezilişi ýaly, adam buýrugynyň çykyşy bilen tekst faýly döredýäris.

$ man man > man.txt

Aboveokardaky buýruk, man buýrugy üçin el sahypasynyň mazmuny bilen man.txt tekst faýly döredýär.

Iň köp ýaýran sözleri, ýokardaky skripti işledip, ýokarda döredilen Tekst faýly -da barlamak isleýäris.

$ cat man.txt | tr ' '  '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
7557 
262 the 
163 to 
112 is 
112 a 
78 of 
78 manual 
76 and 
64 if 
63 be

Aboveokardaky bir çyzgyly ýönekeý skript, tekst faýlynda iň ýygy-ýygydan ýüze çykýan on söz we olaryň ýygylygy görkezilýär.

Aşakdaky buýrugy ulanyp, bir sözi aýratyn bölmek hakda.

$ echo 'tecmint team' | fold -w1
t 
e 
c 
m 
i 
n 
t 
t 
e 
a 
m

Bellik: Ine, -w1 ini üçin.

Indi tekst faýlyndaky her sözi bozarys, netijäni tertipläris we iň ýygy-ýygydan on simwolyň ýygylygy bilen islenýän netijäni alarys.

$ fold -w1 < man.txt | sort | uniq -c | sort -rn | head
8579  
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l

Tekst faýlynda ýygy-ýygydan baş harplar we kiçi harplar bilen ýüze çykýan ýygylyklar bilen tapawutlanmak nähili bolar?

$ fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
11636  
2504 E 
2079 A 
2005 T 
1729 I 
1645 N 
1632 S 
1580 o
1269 R 
1055 L 
836 H 
791 P 
766 D 
753 C 
725 M 
690 U 
605 F 
504 G 
352 Y 
344 .

Dyngy belgisi goşulan ýokardaky çykyşy barlaň. “Tr” buýrugy bilen dyngy belgilerini aýyralyň. Ine:

$ fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
  11636  
  2504 E 
  2079 A 
  2005 T 
  1729 I 
  1645 N 
  1632 S 
  1580 O 
  1550 
  1269 R 
  1055 L 
   836 H 
   791 P 
   766 D 
   753 C 
   725 M 
   690 U 
   605 F 
   504 G 
   352 Y

Indi mende üç tekst faýly bar, çykyşy görmek üçin ýokardaky bir linýer skriptini işledeliň.

$ cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
  11636  
   2504 E 
   2079 A 
   2005 T 
   1729 I 
   1645 N 
   1632 S 
   1580 O

Geljekde azyndan on harpdan ybarat bolan ýygy-ýygydan harplary dörederis. Ine ýönekeý ýazgy.

$ cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n |  grep -E '..................' | head
1        ────────────────────────────────────────── 
1        a all 
1        abc             any or all arguments within   are optional 
1               able  see setlocale for precise details 
1        ab              options delimited by  cannot be used together 
1               achieved by using the less environment variable 
1              a child process returned a nonzero exit status 
1               act as if this option was supplied using the name as a filename 
1               activate local mode  format and display  local  manual  files 
1               acute accent

Bellik: thehli netijeler çykýança ýokardaky skriptdäki nokatlar barha köpelýär. On harp gabat gelmek üçin {10 use ulanyp bileris.

Bu ýönekeý ýazgylar, iňlis dilinde ýygy-ýygydan ýüze çykýan sözleri we nyşanlary hem bize habar berýär.

Bularyň hemmesi häzirlikçe. Men ýene-de bir gezek gyzykly we gyzykly mowzuk açaryn, adamlar okamagy halar. Aşakdaky teswirler bölüminde gymmatly pikirleriňizi bize bermegi ýatdan çykarmaň.

Şeýle hem okaň: Linux-yň 20 gülkünç buýrugy