Isso pode ser feito facilmente em perl
:
$ perl -i -p0e 's/START.*?END/SINGLEWORD/s' file
$ cat file
My block of line starts from here
SINGLEWORD
and end to here for example.
Explicação
-0
define o separador de linha como nulo
-p
aplica o script fornecido por -e
a cada linha e imprime essa linha
O modificador regexp:
-
/s
Trate a string como uma única linha. Ou seja, altere.
para corresponder a qualquer caractere, mesmo uma nova linha, que normalmente não seria compatível.
Por que o ?
:
- Por padrão, um subpadrão quantificado é "ganancioso", ou seja, ele corresponderá quantas vezes for possível (considerando um local inicial específico) enquanto ainda permite que o restante do padrão corresponda. Se você quiser que ele corresponda ao número mínimo de vezes possível, siga o quantificador com
?
.