Você deve verificar grep -c
, ele faz exatamente o que você descreve. Se você precisar de mais flexibilidade, provavelmente poderá usar awk
. Tente algo assim (digitado diretamente no navegador e não testado):
dir=$1
# add tests to check if $1 exists (-d) and/or is non null (-n)
find "${dir}" | awk <<\EOF
BEGIN {
pat1 = 0;
pat2 = 0;
...
}
/pattern/ { pat1 += 1;}
/otherpattern/ {pat2 += 2;}
...
END {
print "pattern", pat1;
print "otherpattern", pat2;
...
}
EOF
Deixo a você a responsabilidade de elaborar os detalhes do comando find
ou do script awk
.