Furahia katika Kituo cha Linux - Cheza na Hesabu za Neno na Wahusika


Laini ya amri ya Linux ina raha nyingi kuzunguka yenyewe na kazi nyingi za kuchosha zinaweza kufanywa kwa urahisi sana bado kwa ukamilifu. Kucheza na maneno na wahusika, mzunguko wao katika faili ya maandishi, nk ndivyo tutakavyoona katika makala hii.

Amri pekee inayokuja akilini mwetu, ya kubadili laini ya amri ya Linux ili kudhibiti maneno na herufi kutoka kwa faili ya maandishi ni amri ya wc.

Amri ya ‘wc’ ambayo inawakilisha hesabu ya maneno ina uwezo wa Kuchapisha Mstari Mpya, hesabu za maneno na baiti kutoka kwa faili ya maandishi.

Kufanya kazi na hati ndogo kuchambua faili ya maandishi, lazima tuwe na faili ya maandishi. Ili kudumisha usawa, tunaunda faili ya maandishi na matokeo ya amri ya mwanadamu, kama ilivyoelezewa hapa chini.

$ man man > man.txt

Amri iliyo hapo juu huunda faili ya maandishi 'man.txt' yenye maudhui ya 'ukurasa wa mwongozo' kwa amri ya 'man'.

Tunataka kuangalia maneno ya kawaida, katika 'Faili ya Maandishi' iliyoundwa hapo juu kwa kuendesha hati iliyo hapa chini.

$ 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

Hati rahisi ya mjengo mmoja hapo juu inaonyesha, maneno kumi yanayoonekana mara kwa mara na mwonekano wao wa mara kwa mara, katika faili ya maandishi.

Vipi kuhusu kugawanya neno kuwa la mtu binafsi kwa kutumia amri ifuatayo.

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

Kumbuka: Hapa, '-w1' ni kwa upana.

Sasa tutakuwa tukivunja kila neno moja katika faili ya maandishi, panga matokeo na upate matokeo unayotaka na marudio ya herufi kumi za mara kwa mara.

$ 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

Vipi kuhusu kupata herufi za mara kwa mara katika faili ya maandishi zenye herufi kubwa na ndogo tofauti pamoja na marudio ya utokeaji.

$ 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 .

Angalia pato hapo juu, ambapo alama ya uakifishaji imejumuishwa. Wacha tuondoe alama za uakifishaji, kwa amri ya 'tr'. Twende sasa:

$ 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

Sasa nina faili tatu za maandishi, wacha tuendeshe hati ya mjengo mmoja hapo juu ili kuona matokeo.

$ 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

Ifuatayo tutakuwa tukitengeneza herufi ambazo hazipatikani mara kwa mara ambazo zina urefu wa angalau herufi kumi. Hapa kuna maandishi rahisi.

$ 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

Kumbuka: Vitone zaidi na zaidi kwenye hati iliyo hapo juu hadi matokeo yote yatolewe. Tunaweza kutumia .{10} kupata herufi kumi zinazolingana.

Maandishi haya rahisi, pia hutufanya tujue maneno na herufi zinazoonekana mara kwa mara katika Kiingereza.

Hayo ni yote kwa sasa. Nitakuwa hapa tena na mada nyingine ya kuvutia na nje ya mada inayostahili kujua, ambayo nyinyi watu mtapenda kusoma. Usisahau kutupatia maoni yako muhimu katika sehemu ya maoni, hapa chini.

Soma Pia: Amri 20 za Mapenzi za Linux