Используйте sed, tr, sort и uniq (и без perl):
sed -E 's/[^[:punct:]]//g;s/(.)/\1x/g' myfile.txt | tr 'x' '\n' | sort | uniq -c
Я сделал это так (sed + tr), чтобы он работал как на Unix, так и на Mac.Mac требует встроенного перевода строки в команде sed, но unix может использовать \n
.Таким образом, это работает везде.
Это будет работать на не-Mac Unix:
sed -E 's/[^[:punct:]]//g;s/(.)/\1\n/g' myfile.txt | sort | uniq -c