Spaass am Linux Terminal - Spillt mat Wuert a Charakter zielt


Linux Kommandozeil huet vill Spaass ronderëm sech a vill langweileg Aufgab kënne ganz einfach awer mat Perfektioun ausgefouert ginn. Mat Wierder a Charaktere spillen, hir Frequenz an enger Textdatei, asw. ass wat mir an dësem Artikel gesinn.

Deen eenzege Kommando deen eis am Kapp kënnt, fir d'Linux Kommandozeil ze tweaking fir Wierder a Charaktere vun enger Textdatei ze manipuléieren ass wc Kommando.

E 'wc' Kommando dat fir Wuertzuel steet ass fäeg Newline, Wuert & Byte zielen aus enger Textdatei ze drécken.

Fir mat de klenge Scripten ze schaffen fir Textdatei ze analyséieren, musse mir eng Textdatei hunn. Fir d'Uniformitéit z'erhalen, kreéiere mir eng Textdatei mat der Ausgang vum Mann Kommando, wéi hei ënnendrënner beschriwwen.

$ man man > man.txt

Deen uewe genannte Kommando erstellt eng Textdatei 'man.txt'mat dem Inhalt vun 'manuell Säit'fir 'Man' Kommando.

Mir wëllen déi heefegst Wierder iwwerpréiwen, am uewe erstallt 'Textdatei' andeems Dir de Skript hei drënner leeft.

$ 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

Déi uewe genannte Linnen einfache Skript weist, zéng meescht dacks optrieden Wierder an hir Erscheinungsfrequenz, an der Textdatei.

Wéi wier et mat engem Wuert an eenzelnen opzedeelen andeems Dir folgend Kommando benotzt.

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

Notiz: Hei ass '-w1' fir d'Breet.

Elo wäerte mir all eenzel Wuert an enger Textdatei ofbriechen, d'Resultat sortéieren an de gewënschten Ausgang mat der Frequenz vun zéng meescht häufigste Charaktere kréien.

$ 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

Wéi wier et mat de meeschte häufigste Zeechen an der Textdatei mat grousser an klenger anescht zesumme mat hirer Optriede Frequenz.

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

Kuckt déi uewe genannte Ausgab, wou d'Punctuatiounszeechen abegraff ass. Loosst d'Punctuatioun erausstrecken, mam 'tr' Kommando. Lo geet et lass:

$ 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

Elo hunn ech dräi Textdateien, loosst den uewe genannte Liner Skript lafen fir d'Ausgab ze gesinn.

$ 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

Als nächst wäerte mir déi selten Bréiwer generéieren déi op d'mannst zéng Bréiwer laang sinn. Hei ass den einfachen Skript.

$ 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

Notiz: Déi méi a méi Punkten am Skript uewendriwwer bis all d'Resultater generéiert ginn. Mir kënnen .{10} benotze fir zéng Charaktermatcher ze kréien.

Dës einfach Scripten, maachen eis och wëssen déi heefegst erschéngen Wierder a Charaktere op Englesch.

Dat ass alles fir elo. Ech wäert erëm hei mat engem aneren interessanten an off the Beat Thema sinn, dat wäertvollt weess, wat Dir Leit gär liesen. Vergiesst net eis Äre wäertvolle Feedback an der Kommentarsektioun hei ënnen ze ginn.

Liest och: 20 witzeg Kommandoe vu Linux