grep -c est utile pour trouver combien de fois une chaîne apparaît dans un fichier, mais il ne compte chaque occurrence qu'une fois par ligne. Comment compter plusieurs occurrences par ligne ?
Je cherche quelque chose de plus élégant que :
perl -e '$_ = <>; print scalar ( () = m/needle/g ), "n"'
 Réponse acceptée :
 -o de grep n'affichera que les correspondances, en ignorant les lignes ; wc peut les compter :
grep -o 'needle' file | wc -l
 Cela correspondra également à "aiguilles" ou "multi-aiguilles".
Pour faire correspondre uniquement des mots uniques, utilisez l'une des commandes suivantes :
grep -ow 'needle' file | wc -l
grep -o 'bneedleb' file | wc -l
grep -o '<needle>' file | wc -l