for d in */*/*/*; do
printf '%s: ' "$d"
zcat -- "$d/"*.gz | grep -Fc STRING
done
contaria o número de linhas que contêm STRING.
Substitua grep -Fc STRING por grep -Fo STRING | wc -l (assumindo o GNU grep ) para ter o número de ocorrências.
Substitua zcat por gzip -dc se o seu zcat não suportar .gz arquivos.
Com zsh e% GNUgrep, você pode encurtá-lo para:
for d (*/*/*/*) zcat $d/*.gz | grep -FcH --label=$d STRING