sed обрабатывает ввод построчно. Его регулярное выражение не может легко сопоставить несколько строк.
Perl, с другой стороны,может читать весь файл, если указана опция -0777
:
perl -0777 -pe 's/^(\[monitor:[^[]+^ignoreOlderThan.*)^ignoreOlderThan = \w+/$1/gms' input > output
-0777
проглатывает весь файл -p
печатает ввод после его обработки /g
повторяет замену /s
заставляет .
соответствовать символу новой строки (, который обычно не соответствует)/m
заставляет ^
соответствовать в начале каждой новой строки, а не только всей строки (и аналогично для $
, но здесь это не нужно)