Se o arquivo patterns contiver somente cadeias fixas, em uma configuração gnu você poderia fazer
grep -oFf patterns infile | sort | uniq -c
Se o conteúdo for regex, talvez algo como
sed -E 'h;s|/|\&|g;x;s|[\&/]|\&|g;H;x;s|(.*)\n(.*)|s///|' patterns \
| sed -f - <(grep -of patterns infile) | sort | uniq -c
que usa o mesmo comando grep , só que desta vez processe o resultado com sed para substituir as correspondências com o padrão real (via outro script sed baseado no conteúdo de patterns )