Но это не соответствует случаю, когда строка начинается с VAR_NAME
Так что добавьте этот случай в:
egrep -nH '*[^(]VAR_NAME|^VAR_NAME' $i
|
соответствует либо левому, либо правому шаблону. ^
за пределами []
соответствует началу строки.
Обратите внимание, что есть и другие случаи, которые исключают: (VAR_NAME)
без предшествующего $
- один. Ответ Тото должен соответствовать этому.
Но даже в этом случае будут пропущены такие случаи, как $(VAR_NAME other stuff
, то есть закрывающая скобка отсутствует). Это может быть покрыто с помощью grep
дважды:
grep -nH 'VAR_NAME' $i | grep -v '$(VAR_NAME)'
Первое использование grep получает каждую строку, VAR_NAME
, второе, с флагом -v
, фильтрует выходные данные первого, чтобы удалить все, что соответствует $(VAR_NAME)
.