Tente estes:
$ # tested on GNU-sed, not sure of syntax for other versions
$ sed '/{{Info DOC/,/}}/ { s/{{\(Info DOC\)/=== ===/; /}}/d }' ip.txt
=== Info DOC ===
|author= ME
|company= MY COMPANY
|classification= RESTRICTED
-
/{{Info DOC/,/}}/
da linha que contém{{Info DOC
para a linha que contém}}
(consulte Endereços de intervalo para detalhes)-
s/{{\(Info DOC\)/=== ===/
transformar conforme necessário -
/}}/d
exclua este - o resto das linhas não será alterado
-
Com perl
$ perl -0777 -pe 's/\{\{(Info DOC)(.*?)\}\}\n/=== $1 ===$2/sg' ip.txt
=== Info DOC ===
|author= ME
|company= MY COMPANY
|classification= RESTRICTED
-
-0777
slurp arquivo inteiro, então esta solução não é adequada para um arquivo de entrada muito grande -
.*?
correspondência não-voraz -
s
modificador para permitir que.
corresponda também ao caractere de nova linha