sedやawkで、指定された範囲の行を除外(というか、削除)したいということがあったので、その備忘。d 以下のように記述して実行してやることで、対象となる範囲の行を除外して出力できる。
sed '/start/,/end/d' PATH
awk '/start/,/end/{next}{print}' PATH
[root@BS-PUB-CENT7-01 ~]# cat test.txt
111
222
333
444
<span style="color: #ff0000;">start
eee
ddd
sss
end</span>
555
666
777
888
999
[root@BS-PUB-CENT7-01 ~]# cat test.txt | sed '/start/,/end/d'
111
222
333
444
555
666
777
888
999
[root@BS-PUB-CENT7-01 ~]# cat test.txt | awk '/start/,/end/{next}{print}'
111
222
333
444
555
666
777
888
999
なお、開始と終了の語句が同じ場合、awkだと語句のある行のみが削除されてしまい、うまく範囲指定できないので注意。