Provavelmente awk
seria a ferramenta shell mais rápida aqui. Você poderia tentar:
awk "/$regex1/ { ++r1 }
/$regex2/ { ++r2 }"'
END { print "regex1:",r1 "\nregex2:",r2 }' <infile
É claro que se você precisar usar perl
expressões regulares como a sua pergunta, realmente perl
é a única resposta. No entanto, awk
usa expressões estendidas (como grep -E
) em oposição às básicas.