Parece que você quer imprimir tudo entre dois padrões, mas exclui todo o resto. Algo parecido com isto:
$ echo -e "a\nb\nc\nd\ne" | sed -ne '/b/,/d/p'
b
c
d
Onde /b/
e /d/
são seus padrões inicial e final. Uma abordagem semelhante pode ser realizada usando awk
também:
$ echo -e "a\nb\nc\nd\ne" | awk '/b/,/d/'
b
c
d
Padrões
Ao decidir o que usar como padrões de início / término, é necessário que você os desenhe para que sejam tão explícitos quanto possível.
Por exemplo:
$ cat afile
something
something
one
two
some start
start
what
did
you start
done
end
the end
Agora, selecione as linhas que ocorrem entre as linhas que contêm apenas a palavra /start/
seguido por /done/
:
$ sed -ne '/^start$/,/^done$/p' afile
start
what
did
you start
done