Counting total number of matches with grep instead of just how many lines match
try this:
grep -o -E "your expression" file |wc -l
well, -E is just an example, it could be -P, -F etc. point is -o
test:
kent$ echo "abc xxx yyy"|grep -cP "[a-z]{3}"
1
kent$ echo "abc xxx yyy"|grep -oP "[a-z]{3}"|wc -l
3
There is a -o flag which indicates that only the matched subsection of the line should get printed.
Use that in conjunction with wc -l:
grep -o "part of line" | wc -l
man grep explains it as well.