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だと語句のある行のみが削除されてしまい、うまく範囲指定できないので注意。