![Microsoft rivela un telefono pieghevole che si trasforma in un tablet](/f/18d01b8cb353a29639a26cf9e178b3f1.jpg?width=100&height=100)
Non è perfetto ma ho adattato il 'vero' approccio per stampare un conteggio di ogni parola in alcuni input standard:
tr -c "'[:alnum:]" "\n" | grep "[[:alnum:]]" | ordina | uniq -c | ordina -n.
Mentre grep -c funziona su una riga, mette ogni parola o numero sulla propria riga e li ordina. Quindi uniq -c li deduplica e stampa il numero di occorrenze. grep viene utilizzato per rimuovere le righe vuote solo perché in caso contrario, uniq stampa anche il numero di righe vuote e non ho ancora trovato un modo migliore per farlo.
L'ordinamento finale è facoltativo, utilizzato per elencare le parole in base alla frequenza di apparizione anziché in ordine alfanumerico. Nota l'apostrofo nel primo set dato a tr tale che possessivi e contrazioni rimangono parole intere ma parentesi, virgolette e altra punteggiatura vengono eliminati. Si noti inoltre che questo si interrompe su numeri più lunghi separati da virgole, trasformando ogni gruppo in un numero solitario a 1, 2 o 3 cifre (probabilmente privo di significato). Quindi non provare a gestirli come se fossero parole, e non c'è problema.
Rispondere