Zabava u Linux terminalu - igrajte se s brojem riječi i znakova


Linux komandna linija ima mnogo zabave oko sebe i mnogi zamorni zadaci se mogu izvesti vrlo lako, ali sa savršenstvom. Igranje s riječima i znakovima, njihovom učestalošću u tekstualnoj datoteci, itd. je ono što ćemo vidjeti u ovom članku.

Jedina komanda koja nam pada na pamet, za podešavanje Linux komandne linije za manipulaciju riječima i znakovima iz tekstualne datoteke je wc komanda.

Komanda 'wc' koja je skraćenica za broj riječi može ispisati novi red, broj riječi i bajtova iz tekstualne datoteke.

Da bismo radili sa malim skriptama za analizu tekstualne datoteke, moramo imati tekstualnu datoteku. Da bismo održali uniformnost, kreiramo tekstualnu datoteku sa izlazom man komande, kao što je opisano u nastavku.

man man > man.txt

Gornja komanda kreira tekstualnu datoteku „man.txt“ sa sadržajem „ručne stranice“ za naredbu „man“.

Želimo provjeriti najčešće riječi u gore kreiranom „Text File“ tako što ćemo pokrenuti donju skriptu.

cat man.txt | tr ' '  '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
Sample Output
7557 
262 the 
163 to 
112 is 
112 a 
78 of 
78 manual 
76 and 
64 if 
63 be

Gornja jednostavna skripta u jednoj liniji prikazuje deset najčešće pojavljivanja riječi i njihovu učestalost pojavljivanja u tekstualnoj datoteci.

Šta kažete na raščlanjivanje riječi na pojedinačne pomoću sljedeće naredbe.

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

Napomena: Ovdje je '-w1' za širinu.

Sada ćemo raščlaniti svaku riječ u tekstualnoj datoteci, sortirati rezultat i dobiti željeni rezultat sa frekvencijom od deset najčešćih znakova.

fold -w1 < man.txt | sort | uniq -c | sort -rn | head
Sample Output
8579  
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l

Što kažete na to da najčešće znakove u tekstualnoj datoteci dobijete velikim i malim slovima na različite načine zajedno s njihovom učestalošću pojavljivanja.

fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
Sample Output
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 .

Provjerite gornji izlaz, gdje je uključen znak interpunkcije. Omogućava uklanjanje interpunkcijskih znakova naredbom „tr“. Idemo:

fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
Sample Output
  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

Sada imam tri tekstualna fajla, hajde da pokrenemo gornju jednu linijsku skriptu da vidimo izlaz.

cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
Sample Output
  11636  
   2504 E 
   2079 A 
   2005 T 
   1729 I 
   1645 N 
   1632 S 
   1580 O

Zatim ćemo generirati ona rijetka slova koja imaju najmanje deset slova. Evo jednostavne skripte.

cat man.txt | tr '' '2' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n |  grep -E '..................' | head
Sample Output
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

Napomena: Sve više i više tačaka u gornjoj skripti dok se ne generišu svi rezultati. Možemo koristiti .{10} da dobijemo deset podudaranja znakova.

Ove jednostavne skripte nam također omogućavaju da znamo najčešće riječi i znakove koji se pojavljuju na engleskom.

To je sve za sada. Ponovo ću biti ovdje sa još jednom zanimljivom temom van ritma koju vrijedi znati, a koju ćete voljeti čitati. Ne zaboravite nam dati svoje vrijedne povratne informacije u odjeljku za komentare, ispod.

Pročitajte također: 20 smiješnih naredbi Linuxa