¿Cómo cuento el número de ocurrencias de una cadena en un archivo completo?

¿Hay un comando incorporado para hacer esto o alguien ha tenido suerte con un script que lo hace?

Estoy mirando para contar el número de veces que una determinada cadena (no palabra) aparece en un archivo. Esto puede incluir múltiples apariciones por línea, por lo que el conteo debe contar cada ocurrencia, no solo contar 1 para las líneas que tienen la cadena 2 o más veces.

Por ejemplo, con este archivo de muestra:

blah(*)wasp( *)jkdjs(*)kdfks(l*)ffks(dl
flksj(*)gjkd(*
)jfhk(*)fj (*) ks)(*gfjk(*)

Si estoy mirando para contar las ocurrencias de la cadena(*) Espero que el conteo sea 6, es decir, 2 de la primera línea, 1 de la segunda línea y 3 de la tercera línea. Observe cómo el uno al otro lado de las líneas 2-3 no cuenta porque hay un carácter LF que las separa.

Actualizar: grandes respuestas hasta ahora! ¿Puedo pedir que el script maneje la conversión de(*) a\(*\), etc? De esa manera, podría pasar cualquier cadena deseada como parámetro de entrada sin preocuparme por qué conversión se debe hacer para que aparezca en el formato correcto.