Jak policzyć liczbę wystąpień ciągu w całym pliku?

Czy istnieje wbudowane polecenie, aby to zrobić lub czy ktoś miał szczęście z skryptem, który to robi?

Chcę policzyć, ile razy dany ciąg (nie słowo) pojawia się w pliku. Może to obejmować wiele wystąpień na linię, więc licznik powinien liczyć każde wystąpienie nie tylko liczyć 1 dla linii, które mają ciąg 2 lub więcej razy.

Na przykład z tym przykładowym plikiem:

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

Jeśli chcę policzyć wystąpienia ciągu(*) Spodziewałbym się, że liczba będzie 6, tj. 2 z pierwszej linii, 1 z drugiej linii i 3 z trzeciej linii. Zwróć uwagę, że ten z linii 2-3 nie liczy się, ponieważ oddziela je znak LF.

Aktualizacja: jak dotąd świetne odpowiedzi! Czy mogę prosić, aby skrypt obsługiwał konwersję(*) do\(*\), itp? W ten sposób mogłem po prostu przekazać dowolny żądany ciąg jako parametr wejściowy, nie martwiąc się o to, jaką konwersję należy wykonać, aby pojawił się we właściwym formacie.

questionAnswers(6)

yourAnswerToTheQuestion