![5 умения, които трябва да овладеете по време на огнището на COVID 19](/f/7ff671d4bcfb1bb89350351c05e71d42.png?width=100&height=100)
Не е перфектно, но адаптирах „tr„Подход за отпечатване на броя на всяка дума в някакъв стандартен вход:
tr -c "'[: alnum:]" "\ n" | grep "[[: alnum:]]" | сортиране | uniq -c | сортиране -n.
Докато grep -c работи на ред, това поставя всяка дума или число на свой ред и ги сортира. Тогава uniq -c ги дедублира, както и отпечатва броя на случаите. grep се използва за премахване на празни редове само защото, ако не го направите, uniq отпечатва и броя на празните редове и аз все още не съм измислил по -добър начин за това.
Окончателното сортиране е по избор и се използва за изброяване на думите по честота на появяване, вместо по букви и цифри. Обърнете внимание на апострофа в първия набор, даден на tr, така че притежателните и контракциите да останат цели думи, но скобите, кавичките и други пунктуационни знаци са изтрити. Също така имайте предвид, че това се разделя на по-дълги, разделени със запетая числа, превръщайки всяка група в (вероятно безсмислено) самотно 1-, 2- или 3-цифрено число. Така че просто не се опитвайте да се отнасяте към тях все едно са думи и няма проблем.
Отговор