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