Gaman í Linux Terminal - Spilaðu með orða- og stafafjölda


Linux skipanalínan hefur mikla skemmtun í kringum sig og mörg leiðinleg verkefni er hægt að framkvæma mjög auðveldlega en þó með fullkomnun. Að leika með orð og stafi, tíðni þeirra í textaskrá osfrv. er það sem við ætlum að sjá í þessari grein.

Eina skipunin sem okkur dettur í hug, til að fínstilla Linux skipanalínu til að vinna með orð og stafi úr textaskrá er wc skipun.

„wc“ skipun sem stendur fyrir orðafjölda er fær um að prenta nýlínu, orða- og bætitölur úr textaskrá.

Til að vinna með litlu forskriftirnar til að greina textaskrá verðum við að hafa textaskrá. Til að viðhalda einsleitni erum við að búa til textaskrá með úttak mansskipunar, eins og lýst er hér að neðan.

$ man man > man.txt

Ofangreind skipun býr til textaskrá 'man.txt' með innihaldi 'manual page' fyrir 'man' skipun.

Við viljum athuga algengustu orðin, í ofangreindu „Textaskrá“ með því að keyra forskriftina hér að neðan.

$ 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

Einfalt handritið hér að ofan sýnir tíu algengustu orðin og tíðni þeirra í textaskránni.

Hvernig væri að skipta orði niður í einstakling með eftirfarandi skipun.

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

Athugið: Hér er '-w1' fyrir breidd.

Nú ætlum við að brjóta niður hvert einasta orð í textaskrá, flokka niðurstöðuna og fá æskilegt úttak með tíðni tíu algengustu stafa.

$ 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

Hvernig væri að fá algengustu stafi í textaskránni með hástöfum og lágstöfum á annan hátt ásamt tíðni þeirra.

$ 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 .

Athugaðu úttakið hér að ofan, þar sem greinarmerki er innifalið. Leyfum að fjarlægja greinarmerki, með „tr“ skipuninni. Hérna förum við:

$ 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

Nú er ég með þrjár textaskrár, við skulum keyra ofangreint einlínuforskrift til að sjá úttakið.

$ 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

Næst munum við búa til þessa sjaldgæfu stafi sem eru að minnsta kosti tíu stafir að lengd. Hér er einfalt handrit.

$ 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

Athugið: Því fleiri og fleiri punktar í handritinu hér að ofan þar til allar niðurstöður eru búnar til. Við getum notað .{10} til að fá tíu stafasamsvörun.

Þessar einföldu forskriftir gera okkur einnig kleift að þekkja algengustu orð og stafi á ensku.

Það er allt í bili. Ég kem hér aftur með annað áhugavert og óviðjafnanlegt efni sem vert er að vita, sem þú munt elska að lesa. Ekki gleyma að veita okkur verðmæta endurgjöf þína í athugasemdahlutanum hér að neðan.

Lestu líka: 20 fyndnar skipanir í Linux