Jautri Linux terminālā - spēlējiet ar vārdu un rakstzīmju skaitīšanu
Linux komandrindā ir daudz jautrības, un daudzus garlaicīgus uzdevumus var veikt ļoti vienkārši, taču ar pilnību. Šajā rakstā mēs redzēsim spēlēšanu ar vārdiem un rakstzīmēm, to biežumu teksta failā utt.
Vienīgā komanda, kas mums ienāk prātā, lai pielāgotu Linux komandrindu, lai manipulētu ar vārdiem un rakstzīmēm no teksta faila, ir komanda wc.
‘Wc’ komanda, kas nozīmē vārdu skaitu, var izdrukāt Newline, vārdu un baitu skaitu no teksta faila.
Lai analizētu teksta failu ar mazajiem skriptiem, mums ir jābūt teksta failam. Lai saglabātu vienveidību, mēs izveidojam teksta failu ar cilvēka komandu, kā aprakstīts tālāk.
$ man man > man.txt
Iepriekš minētā komanda izveido teksta failu ‘man.txt’ ar komandas ‘man’ lapu saturu ‘manual page’.
Mēs vēlamies pārbaudīt visbiežāk lietotos vārdus iepriekš izveidotajā teksta failā, izpildot zemāk esošo skriptu.
$ 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
Iepriekš minētais vienkāršais skripts teksta failā parāda desmit visbiežāk parādītos vārdus un to parādīšanās biežumu.
Kā par vārda sadalīšanu atsevišķos, izmantojot šādu komandu.
$ echo 'tecmint team' | fold -w1
t e c m i n t t e a m
Piezīme: Šeit ‘-w1’ attiecas uz platumu.
Tagad mēs sadalīsim katru vārdu teksta failā, kārtosim rezultātu un iegūsim vēlamo rezultātu ar desmit visbiežāk sastopamo rakstzīmju biežumu.
$ 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
Kā par to, ka teksta failā visbiežāk tiek izmantotas rakstzīmes ar lielajiem un mazajiem burtiem atšķirībā no to sastopamības biežuma.
$ 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 .
Pārbaudiet iepriekš minēto izvadi, kur iekļauta pieturzīme. Ļauj noņemt pieturzīmes ar komandu “tr”. Te nu mēs esam:
$ 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
Tagad man ir trīs teksta faili, ļauj izpildīt iepriekšminēto viena līnijas skriptu, lai redzētu izvadi.
$ 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
Tālāk mēs ģenerēsim tos retos burtus, kuru garums ir vismaz desmit burti. Šeit ir vienkāršs skripts.
$ 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
Piezīme. Aizvien vairāk punktu iepriekšminētajā skriptā, līdz tiek ģenerēti visi rezultāti. Mēs varam izmantot. {10}, lai iegūtu desmit rakstzīmju atbilstības.
Šie vienkāršie skripti arī ļauj mums uzzināt visbiežāk sastopamos vārdus un rakstzīmes angļu valodā.
Tas pagaidām ir viss. Es atkal būšu šeit ar vēl vienu interesantu un nezināmu tēmu, kuru ir vērts zināt un kuru jūs, cilvēki, labprāt lasīsit. Neaizmirstiet sniegt mums vērtīgas atsauksmes komentāru sadaļā, kas atrodas tālāk.
Lasiet arī: 20 smieklīgas Linux komandas