[nondet]phrase_from_file(:Grammar, 
+File)
:- use_module(library(dcg/basics)).
file_contains(File, Pattern) :-
        phrase_from_file(match(Pattern), File).
match(Pattern) -->
        string(_),
        string(Pattern),
        remainder(_).
match_count(File, Pattern, Count) :-
        aggregate_all(count, file_contains(File, Pattern), Count).
This can be called as (note that the pattern must be a string (code list)):
?- match_count('pure_input.pl', `file`, Count).