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