Weboldal keresés

Szórakozás a Linux terminálban – Játssz a szavak és karakterek számával


A Linux parancssora nagyon szórakoztató, és sok fárasztó feladat nagyon egyszerűen, mégis tökéletesen elvégezhető. Ebben a cikkben a szavakkal és karakterekkel való játékot, azok gyakoriságát egy szöveges fájlban stb. fogjuk látni.

Az egyetlen parancs, ami eszünkbe jut, a wc parancs, amellyel a Linux parancssort módosítani lehet a szövegfájlból származó szavak és karakterek manipulálására.

A „wc” parancs, amely a szószámot jelöli, képes újsort, szót és bájtszámot nyomtatni egy szöveges fájlból.

Ahhoz, hogy a szöveges fájl elemzéséhez kis szkriptekkel dolgozhassunk, rendelkeznünk kell egy szövegfájllal. Az egységesség megőrzése érdekében létrehozunk egy szöveges fájlt a man parancs kimenetével, az alábbiak szerint.

man man > man.txt

A fenti parancs egy „man.txt” szövegfájlt hoz létre a „manuális oldal” tartalommal a „man” parancshoz.

Szeretnénk ellenőrizni a leggyakoribb szavakat a fent létrehozott „Szövegfájlban” az alábbi szkript futtatásával.

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

A fenti egysoros egyszerű szkript megmutatja a tíz leggyakrabban előforduló szót és azok előfordulási gyakoriságát a szövegfájlban.

Mit szólnál, ha egy szót egyénre bontanál a következő paranccsal.

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

Megjegyzés: Itt a „-w1” a szélességet jelenti.

Most minden egyes szót fel fogunk bontani egy szövegfájlban, rendezzük az eredményt, és megkapjuk a kívánt kimenetet a tíz leggyakoribb karakter gyakoriságával.

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

Mit szólnál ahhoz, hogy a szövegfájlban a leggyakoribb karaktereket a kis- és nagybetűkkel eltérően, az előfordulási gyakoriságukkal együtt kapjuk meg.

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

Ellenőrizze a fenti kimenetet, ahol írásjelek szerepelnek. Lehetővé teszi az írásjelek eltávolítását a „tr” paranccsal. Essünk neki:

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

Most három szöveges fájlom van, futtassuk le a fenti egy soros szkriptet a kimenet megtekintéséhez.

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

Ezután azokat a ritka betűket fogjuk generálni, amelyek legalább tíz betű hosszúak. Íme az egyszerű forgatókönyv.

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

Megjegyzés: A fenti szkriptben egyre több pont az összes eredmény generálásáig. A .{10} segítségével tíz karakteregyezést kaphatunk.

Ezek az egyszerű szkriptek a leggyakrabban előforduló angol szavakat és karaktereket is megismertetik velünk.

Ez minden most. Újra itt leszek egy másik érdekes és nem aktuális témával, amelyet érdemes tudni, és ti, emberek, szívesen olvastok majd. Ne felejtse el megadni nekünk értékes visszajelzését az alábbi megjegyzés részben.

Olvassa el még: A Linux 20 vicces parancsa