[SED] Delimitar de uma linha até a outra

1. [SED] Delimitar de uma linha até a outra

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 27/07/2020 - 21:15h

Olá boa noite, estou com um problema em relação ao sed, ele está apagando todas as linhas </ul> mesmo eu delimitando

O comando que estou usando é sed '/<\!— coment id:x9222 —>/,/<\/ul>/d' arquivo.html

arquivo normal

<!-- SECTION ID:TEST-1 -->

<li class="test-1"><h3>test-1</h3>
<ul class="test-1">
<li><article><a href="link" title="link">test...1 | <time datetime="???">0000/00/00</time></a></article></li>
</ul>
</li>

<!-- FINAL SECTION ID:TEST-1 -->

<!-- SECTION ID:TEST-2 -->

<li class="test-2"><h3>test-2</h3>
<ul class="test-2">
<li><article><a href="link" title="link">teste...2 | <time datetime="???">0000/00/00</time></a></article></li>
</ul>
</li>

<!-- FINAL SECTION ID:TEST-2 -->

</ul>
</section>


como gostaria de deixar

<!-- SECTION ID:TEST-1 -->

<li class="test-1"><h3>test-1</h3>
<ul class="test-1">
<li><article><a href="link" title="link">test...1 | <time datetime="???">0000/00/00</time></a></article></li>
</ul>
</li>

<!-- FINAL SECTION ID:TEST-1 -->

<!-- SECTION ID:TEST-2 -->

<li class="test-2"><h3>test-2</h3>
<ul class="test-2">
<li><article><a href="link" title="link">teste...2 | <time datetime="???">0000/00/00</time></a></article></li>

</ul>
</section>


estou tentando sed '/<\!-- FINAL SECTION ID:TEST-2 -->/,/<\/ul>/d'
porem não funciona, ele apaga o </ul> acima do </section>

Alguém teria alguma sugestão? Muito obrigado a todos uma ótima noite!


  


2. Re: [SED] Delimitar de uma linha até a outra

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/07/2020 - 22:05h


Pinguino escreveu:

Olá boa noite, estou com um problema em relação ao sed, ele está apagando todas as linhas </ul> mesmo eu delimitando

O comando que estou usando é sed '/<\!— coment id:x9222 —>/,/<\/ul>/d' arquivo.html

Alguém teria alguma sugestão? Muito obrigado a todos uma ótima noite!


Boa noite Pinguino.
o d é ara deletar,
se quer ver a linha, coloque !d
sed '/<\!— coment id:x9222 —>/,/<\/ul>/!d' arquivo.html
Ou
sed -n '/<\!— coment id:x9222 —>/,/<\/ul>/p' arquivo.html
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


3. Mas é para deletar

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 27/07/2020 - 22:06h

A ideia é deletar a linha sim, porém não as outras </ul>


4. Re: [SED] Delimitar de uma linha até a outra

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/07/2020 - 22:11h

Pinguino escreveu:

A ideia é deletar a linha sim, porém não as outras </ul>

Posta um trecho do arquivo e indique o que não quer deletar.

Editado.
Agora que vi direito.....
Esse comando, "/de/,/para/"
Nem sei se funciona para deletar, só uso para imprimir de um trecho até outro....

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


5. atualizei a pergunta

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 27/07/2020 - 23:54h

atualizei a pergunta acho que agora da pra entender melhor, peço desculpa


6. Re: [SED] Delimitar de uma linha até a outra

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 28/07/2020 - 09:48h

Testaí:
sed -i '/<!-- FINAL SECTION ID:TEST-2 -->/,+1d' arquivo 




7. Não funcionou

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 28/07/2020 - 14:44h

Não funcionou, apenas retirou o comentario <!-- FINAL SECTION ID:TEST-2 -->, porem não retirou as linhas </li> e </ul>

a ideia é

<!-- SECTION ID:TEST-2 --> <------ preserva

<li class="test-2"><h3>test-2</h3> <------ preserva
<ul class="test-2"> <------ preserva
<li><article><a href="link" title="link">teste...2 | <time datetime="???">0000/00/00</time></a></article></li> <------ preserva
</ul> <------ remove
</li> <------ remove

<!-- FINAL SECTION ID:TEST-2 --> <------ remove

</ul> <------ preserva
</section> <------ preserva



8. Re: [SED] Delimitar de uma linha até a outra

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/07/2020 - 18:34h


Pinguino escreveu:

Não funcionou, apenas retirou o comentario <!-- FINAL SECTION ID:TEST-2 -->, porem não retirou as linhas </li> e </ul>

a ideia é

<!-- SECTION ID:TEST-2 --> <------ preserva

<li class="test-2"><h3>test-2</h3> <------ preserva
<ul class="test-2"> <------ preserva
<li><article><a href="link" title="link">teste...2 | <time datetime="???">0000/00/00</time></a></article></li> <------ preserva
</ul> <------ remove
</li> <------ remove

<!-- FINAL SECTION ID:TEST-2 --> <------ remove

</ul> <------ preserva
</section> <------ preserva

Boa tarde Pinguino,
"Meio" complicado...
Segue sugestão, para pegar o intervalo das linhas que devem ser excluídas....
linhas="$(grep -n -B3 '^<!-- FINAL.*-2 -->$' texto_original|sed 's/[:-].*//')" 

Onde:
Da linha número::
head -n1 <<< "$linhas"
Até a linha número::
tail -n1 <<< "$linhas"
sed "$(head -n1 <<< "$linhas"),$(tail -n1 <<< "$linhas")d" texto_original 



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts