I've got a command that outputs a few different lines constantly (a stream), I'd like a live summary of the number of times each line has occurred (with a few seconds latency being acceptable).
for example if my command outputs the following:
apple
apple
apple
apple
banana
orange
banana
I'd like something like:
4 apple
2 banana
1 orange
and for the output to refresh every few seconds.
How might I achieve this? (rereading an entire log file will take too long, it has to be the output of a live pipe)