¿Grep ofrece una manera de contar el número total de coincidencias que hace? La opción -c solo devuelve el número de líneas que coinciden con la expresión regular, pero en este caso tengo varias coincidencias por línea.
29
prueba esto:
grep -o -E "your expression" file |wc -l
bueno, -E es solo un ejemplo, podría ser -P, -F, etc. el punto es -o
prueba:
kent$ echo "abc xxx yyy"|grep -cP "[a-z]{3}"
1
kent$ echo "abc xxx yyy"|grep -oP "[a-z]{3}"|wc -l
3
Hay un indicador -o que indica que solo se debe imprimir la subsección coincidente de la línea.
Úselo junto con wc -l:
grep -o "part of line" | wc -l
man grep también lo explica.
Como alternativa a las otras respuestas, usando solo grep:
grep -o "seach pattern" somefile.txt | grep -c ""
El -o en el primer grep genera cada coincidencia, y solo la coincidencia, no toda la línea (a menos que toda la línea ES la coincidencia, por supuesto). El -c en el segundo grep los cuenta.
Hay unos pocos caracteres más para escribir (como 4 o 5), pero me resulta más fácil de recordar.