En ligne de commande, tu peux faire ça assez facilement avec gawk.
Pour avoir le nombre d’occurrences d'un signe de ponctuation dans un fichier texte, par exemple une virgule :
gawk -F',' 'BEGIN{RS="\x00"} {print "Nombre de \"" FS "\" : " NF-1}' fichier
Pour avoir le nombre d’occurrences d'un mot (au sens d'une chaine de caractères séparée du reste du texte par une espace, un signe de ponctuation, ou autre caractère non alphanumérique) :
gawk -F'\\<mot\\>' 'BEGIN{RS="\x00"} {print "Nombre de \"" FS "\" : " NF-1}' fichier
Après, si tu as plusieurs caractères ou mots dont tu veux avoir le nombre d'occurrences, tu peux faire rentrer le choix du séparateur de champ dans gawk.
Par exemple, pour compter le nombre de virgules, de points et de « mot » :
gawk 'BEGIN{RS="\x00"; a["\\<mot\\>"]=""; a[","]=""; a["."]=""} {for (s in a){FS=s; $0=$0; print "Nombre de " s " : " NF-1}}' fichier