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.