Você pode usar awk
:
awk '/\.SUBCKT C032_THS_COMPARATOR/{p=1};p;/\.ENDS/{p=0}' file
Explicação
- Se virmos
.SUBCKT C032_THS_COMPARATOR
, definap = 1
. - Se virmos
.ENDS
, definap = 0
. - Dependendo do valor de
p
, podemos rastrear a posição atual dentro ou fora do intervalo, se em,p
é1
, ou seja, true em contexto booleano, fazendo com que a ação padrãoawk
imprima toda a linha de entrada . Se sair,p
é0
, significando falso em contexto booleano,awk
não faz nada.
ou sed
:
sed -e '/\.SUBCKT C032_THS_COMPARATOR/,/\.ENDs/!d' file