Difícil acreditar que isso funcione no seu shell. No entanto, este código contém vários erros e também tem a abordagem errada IMHO.
o awk espera uma string entre //
não uma variável. Estas são expressões regulares constantes. Então você faz o shell colocar a variável lá ou você usa ~
.
Sua abordagem com correções:
awk -v RS='!\n' -v PATTERN="${VALUE}" '$0 ~ PATTERN' file.txt |
awk '/^interface/'
Estou surpreso que isso funcione. Da documentação eu esperava que, devido à configuração do RS, um "!" Indesejado seria impresso. No entanto, eu considero este melhor:
awk -v PATTERN="${VALUE}" \
'$0 ~ PATTERN { print previousline; }; { previousline=$0; }' file.txt
ou com padrão codificado
awk '/no ip proxy-arp/ { print previousline; }; { previousline=$0; }' file.txt
ou com o shell escrevendo o padrão
awk /"$VALUE"/' { print previousline; }; { previousline=$0; }' file.txt