But this doesn't match the case when the line starts with VAR_NAME
Adicione esse caso em:
egrep -nH '*[^(]VAR_NAME|^VAR_NAME' $i
|
corresponde ao padrão à esquerda ou ao padrão à direita. ^
fora de []
corresponde ao início de uma linha.
Observe que há outros casos que isso exclui: (VAR_NAME)
sem um $
anterior é um. A resposta do Toto deve corresponder a isso.
Mas, mesmo isso, perderá casos como $(VAR_NAME other stuff
, ou seja, sem parênteses de fechamento. Isso pode ser coberto usando grep
duas vezes:
grep -nH 'VAR_NAME' $i | grep -v '$(VAR_NAME)'
O primeiro uso do grep obtém todas as linhas que incluem VAR_NAME
, o segundo, com o -v
flag, filtra a saída do primeiro para remover tudo o que corresponde a $(VAR_NAME)
.