arquivo de exemplo ./filename
:
registering evn register evn
evn register evn.register. register.evn evn evn register.
evn register-evnt register
comando:
echo register:$(grep -oP "(^|\s)\Kregister(?=\s|$)|(^|\s)\Kregister\.(?=\s|$)" ./filename | wc -l) && echo evn:$(grep -oP '(^|\s)\Kevn(?=\s|$)|(^|\s)\Kevn\.(?=\s|$)' ./filename | wc -l)
exemplo de saída:
register:4
evn:6
Isso deve contar com precisão apenas as palavras "register" e "evn", omitindo ocorrências de palavras que contenham "register" e ou "evn", como "register", "evnt" ou "register-evn", por exemplo.
Isso pressupõe que não há caracteres especiais como traços imediatamente após uma ou outra palavra, mas irá incluir essas palavras se elas forem seguidas por um período no final de uma linha ou sentença.
Essa resposta vinculada me forneceu as informações necessárias para a sintaxe do grep.