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.