$ sed -n '/--START--/{:a;N;/--END--/!ba; /Device=A/p}' file
--START--
Device=A
Data=asdfasdf
Lorem=Ipsum
--END--
--START--
Device=A
Data=asdfasdf
--END--
(O acima foi testado no GNU sed. Ele teria que ser massageado para funcionar no BSD / OSX.)
Como funciona:
-
/--START--/{...}
Sempre que chegarmos a uma linha que contenha
--START--
, execute os comandos dentro das chaves{...}
. -
:a
Defina um rótulo
a
. -
N
Leia a próxima linha e adicione-a ao espaço do padrão.
-
/--END--/!ba
A menos que o espaço padrão agora contenha
--END--
, retorne ao rótuloa
. -
/Device=A/p
Se chegarmos aqui, isso significa que o espaço dos padrões começa com
--START--
e termina com--END--
. Se, além disso, o espaço de padrão contiverDevice=A
, imprima (p
).