Use um bloco no qual você diz ao sed para imprimir somente quando ele vê C:
sed -n '/EEE/,/FFF/{/C/p}'
Considere o arquivo simplificado
AAA
BBB
CCC1
DDD
EEE
CCC2
DDD
FFF
GGG
CCC3
HHH
Eu posso escolher o intervalo EEE
to FFF
com
sed -n '/EEE/,/FFF/p'
Suponhamos que eu queira imprimir qualquer linha contendo C
, mas somente dentro do intervalo correspondente. Eu posso canalizar o resultado de sed
a grep
sed -n '/EEE/,/FFF/p' | grep 'C'
Eu também poderia fazer o intervalo e combinar em um pequeno script awk
(ou perl
, python
, etc.). Mas como eu faria isso usando apenas uma invocação de sed
?
Você pode tentar:
sed '/EEE/,/FFF/!d;/C/!d'
Tags sed pattern-matching