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