Discussion:
[shell-script] Dúvida sobre o parâmetro -c do SED
andrelucio.fc@yahoo.com [shell-script]
2016-09-27 20:34:08 UTC
Permalink
Olá, Pessoal.


Estou aprofundando os estudos sobre o SED e me esbarrei em um questão.


Possuo um arquivo chamado index.html com o conteúdo abaixo:


<html>


<head> </head>


<body>


<pre> Sei lá </pre>


</body>



</html>


Preciso modificar o conteúdo entre as tags <pre> </pre> e, descobrir que através do parâmetro c do SED eu conseguiria alterar o conteúdo entre/no meio das tags. O comando que estou utilizando está abaixo:


sed '/<pre>/,/<\/pre>/c Qualquer Coisa' index.html



O problema é que quando executo esse comando, ele me retorna a seguinte saída:


<html>


<head> </head>


<body>


Alguém pode ajudar a descobrir o que está incorreto?


Desde já agradeço.
Robson Alexandre alexandrerobson@gmail.com [shell-script]
2016-09-27 21:01:36 UTC
Permalink
Prezado andrelucio.fc


para estas situacoes eu costumo usar desta maneira

sed '/<pre>/{ :a; /<\/pre>/ ! {N;ba;}; s/.*/<pre>COLOCA AQUI SEU
TEXTO<pre>/g }' /tmp/index.html

pois da forma como vc fez os comandos sed '/<pre>/,/<\/pre>/' mandam pegar
tudo entre as linhas que contem <pre> e <pre>, mas somente para situacoes
em que elas estao em linhas diferentes.
Tenta fazer desta forma para ver se o resultado esperado.



Atenciosamente
Robson Alexandre
Post by ***@yahoo.com [shell-script]
Olá, Pessoal.
Estou aprofundando os estudos sobre o SED e me esbarrei em um questão.
<html>
<head> </head>
<body>
<pre> Sei lá </pre>
</body>
</html>
Preciso modificar o conteúdo entre as tags <pre> </pre> e, descobrir que
através do parâmetro c do SED eu conseguiria alterar o conteúdo entre/no
sed '/<pre>/,/<\/pre>/c Qualquer Coisa' index.html
<html>
<head> </head>
<body>
Alguém pode ajudar a descobrir o que está incorreto?
Desde já agradeço.
--
Atenciosamente

Robson Alexandre
andrelucio.fc@yahoo.com [shell-script]
2016-09-27 21:26:11 UTC
Permalink
Opa, Robson.

Obrigado pela ajuda, funcionou perfeitamente. Só poderia me explicar o que você fez?


Outra coisa, eu modifiquei o arquivo, e coloqueio dessa forma:


<html>

<head> </head>

<body>

<pre>


Sei lá

</pre>

</body>

</html>


E executei o mesmo comando novamente, e ele me retornou a saída abaixo:


<html>

<head> </head>

<body>

Qualquer Coisa

</body>

</html>

Não entendi muito bem esse parâmetro.
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2016-09-28 01:21:22 UTC
Permalink
$ seq 5 | sed '/4/i 3.5' # Inserindo antes da 4 (i=insert)
1
2
3
3.5
4
5
$ seq 5 | sed '/4/a 4.5' # Inserindo após a 4 (a=append)
1
2
3
4
4.5
5
$ seq 5 | sed '/4/c Nova 4' # Substituindo a linha 4 (c=change)
1
2
3
Nova 4
5
$ seq 5 | sed '/3/,/4/c Nova 4' # Substituindo da 3 a 4
1
2
Nova 4
5


Abcs,
Julio
*@juliobash*

*Próximos cursos de Shell*
*Cidade Local Período*
*​*
*São Paulo 4Linux
<https://www.4linux.com.br/curso/programacao-em-shell-script> 05-09/12*
Dou treinamento de *Shell* em qualquer cidade.
Post by ***@yahoo.com [shell-script]
Opa, Robson.
Obrigado pela ajuda, funcionou perfeitamente. Só poderia me explicar o que você fez?
<html>
<head> </head>
<body>
<pre>
Sei lá
</pre>
</body>
</html>
<html>
<head> </head>
<body>
Qualquer Coisa
</body>
</html>
Não entendi muito bem esse parâmetro.
andrelucio.fc@yahoo.com [shell-script]
2016-09-28 18:23:10 UTC
Permalink
Opa, Mestre Júlio.

Obrigado pela ajuda.

Loading...