Se awk
for uma opção:
awk 'BEGIN{o=d=1} /\[old\]/{o=0} /device: 1000/&&o==1{d=0;exit} END{exit d}' file
Explicação:
-
BEGIN{o=d=1}
: inicializa as variáveis -
/\[old\]/{o=0}
if[old]
: é encontrado definidoo=0
-
/device: 1000/&&o==1{d=0;exit}
: sedevice: 1000
for encontrado e[old]
ainda não for encontrado, definad=0
e vá para o blocoEND{}
sem examinar o arquivo ainda mais. -
END{exit d}
: sair com o valor fornecido ded
Execute assim:
awk 'BEGIN{o=d=1} /\[old\]/{o=0} /device: 1000/&&o==1{d=0;exit} END{exit d}' file && echo "contains" || echo "contains not"