Linux find and grep command together
You are looking for -H
option in gnu grep.
find . -name '*bills*' -exec grep -H "put" {} \;
Here is the explanation
-H, --with-filename
Print the filename for each match.
Now that the question is clearer, you can just do this in one grep
grep -R --include "*bills*" "put" .
With relevant flags
-R, -r, --recursive
Read all files under each directory, recursively; this is
equivalent to the -d recurse option.
--include=GLOB
Search only files whose base name matches GLOB (using wildcard
matching as described under --exclude).