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