Estou tentando encontrar essas três linhas:
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
e substitua-os por:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Quando eu tento
sudo sed -i 's:<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Não encontra, tentei também colocar \ n, mas ainda não funcionou:
sudo sed -i 's:<!--\n <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />\n -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Isso não gera erros, apenas não descomenta a linha. Qualquer conselho ajudaria obrigado!
Aqui está uma descrição dos comandos multilinhas no SED: http://docstore.mik.ua/orelly/unix/sedawk/ch06_01.htm
É uma dor no traseiro. Você pode seguir os conselhos de Eduardo e usá-lo
perl -i -p -e
.fonte
/<\!--/
: string correspondente:X
: este é um rótulo para o comando de ramificação "b"/-->/
: string correspondentes@...@...@p
: tira "<! -", "->" e imprime o resultadod
: exclua o espaço do padrão e inicie um novo cicloN
: se não corresponder a / -> /, adicione uma linhabX
: ramificar para: rótulo Xp
: basta imprimir uma string que não corresponda a / <! - /e esse segundo método é uma simples cópia e colagem de substituição literal de arquivos de texto de tamanho pequeno (é necessário um arquivo de script de shell)
fonte