O sinalizador -w
para grep
fará com que a expressão especificada corresponda apenas a palavras inteiras.
Uma "palavra" é uma cadeia de "caracteres de palavra", rodeada por "caracteres que não são de palavras" (ou início / fim de linha).
O problema no seu caso é que _
(sublinhado) passa a ser um "caractere de palavra" e, portanto, não serve para delimitar a palavra proc
como uma palavra por si só.
Em vez de usar -w
com grep
, use um padrão que delimite explicitamente a palavra por _
:
grep '_proc_' filename
Como alternativa, use [^a-z]
em vez de _
se você quiser delimitar a palavra por qualquer coisa que não seja um caractere alfabético minúsculo:
grep '[^a-z]proc[^a-z]' filename
Observe que isso não reconhecerá proc
como uma palavra no início / final de uma linha.