Suponha que seu ID seja fornecido em uma variável chamada ALERTID :
sed -e '/Outgoing XML/!d;:a' -e '$d;N;s/.*\(<xml version.*<\/Alert>\).*//;Ta' -e "/$ALERTID/!d" yourfile.log
Explicação:
-
/Outgoing XML/!d;:adeletar coisas até a linhaOutgoing XMLe iniciar um loop então -
$dpara excluir um registro inacabado no final do arquivo -
N;s/.*\(<xml version.*<\/Alert>\).*//;Taacrescenta linhas até a tag</Alert>ser encontrada e remove tudo antes e depois do bloco desejado"/ $ ALERTID /! ddeletes blocks without the$ ALERTID '
Talvez seja melhor ler:
sed '/Outgoing XML/!d;:a
$d;N
s/.*\(<xml version.*<\/Alert>\).*//;Ta
/'$ALERTID'/!d' yourfile.log