Nu este perfect, dar am adaptattr„Abordare pentru a imprima un număr de fiecare cuvânt într-o intrare standard:
tr -c "'[: alnum:]" "\ n" | grep "[[: alnum:]]" | sortare | uniq -c | sortează -n.
In timp ce grep -c funcționează pe o linie, aceasta pune fiecare cuvânt sau număr pe propria linie și le sortează. Apoi uniq -c le deduplică, precum și tipărește numărul de apariții. grep este folosit pentru a elimina liniile goale numai pentru că, dacă nu, uniq tipărește și numărul de linii goale și nu am venit încă cu o modalitate mai bună de a face asta.
Sortarea finală este opțională, utilizată pentru a lista cuvintele după frecvența apariției în loc de alfanumeric. Rețineți apostroful din primul set dat lui tr astfel încât posesivele și contracțiile rămân cuvinte întregi, dar parantezele, ghilimelele și alte punctuații sunt eliminate. Rețineți, de asemenea, că acest lucru se rupe pe numere mai lungi, separate prin virgulă, transformând fiecare grup într-un număr singur (probabil fără sens) de 1, 2 sau 3 cifre. Deci, nu încercați să le gestionați ca și cum ar fi cuvinte și nu există nicio problemă.
Răspuns