To count the matches, listing only the filename(s) and count:
grep -src HOST /etc/*
Example output:
/etc/postfix/postfix-files:1
/etc/security/pam_env.conf:6
/etc/X11/app-defaults/Ddd.3.3.11:1
/etc/X11/app-defaults/Ddd:1
/etc/zsh/zshrc:0
/etc/zsh/zshenv:0
The -c option supresses normal output and prints a match count for each file.
If you'd like to suppress the files with zero counts:
grep -src HOST /etc/* | grep -v ':0$'
To print the line number (-n) and file name (-H) for each matching line for any number of input files:
grep -srnH HOST /etc/*
Example output:
/etc/lynx-cur/lynx.cfg:254:.h2 LYNX_HOST_NAME
/etc/lynx-cur/lynx.cfg:255:# If LYNX_HOST_NAME is defined here or in userdefs.h, it will be
/etc/X11/app-defaults/Ddd.3.3.11:8005: DDD 3.3.11 (@THEHOST@) gets @CAUSE@\n\
/etc/X11/app-defaults/Ddd:8010: DDD 3.3.12 (@THEHOST@) gets @CAUSE@\n\
The option -r causes grep to recursively search files in each subdirectory at all levels under the specified directory. The -s option suppresses error messages.
To suppress matches of binary files, use the -I option.
See man grep for more information.