Com expressões regulares perl, você pode fazer correspondências não-vorazes :
perl -pe 's/===.*?<!!!>//g' file
Editar 1: Se você deseja inserir algum texto, use:
perl -pe 's/===.*?<!!!>/Text you want to insert/g' file
Editar 2: Se tiver que lidar com comentários de várias linhas, use também:
perl -pe 'BEGIN{undef $/;} s|===.*?</!!!>|insert|gs' file
Precisamos usar o modificador s
, que traz .
para corresponder também a uma nova linha. A variável $/
de perl, que é o separador de entrada, deve ser alterada para undef. Isso também é chamado de modo "slurp".