remover comentários [RESOLVIDO]

1. remover comentários [RESOLVIDO]

gabriel
bielwas

(usa Debian)

Enviado em 12/04/2022 - 23:18h

Olá pessoal. O comando abaixo remove todas as linhas que começa com # e <! . Até aqui tudo ok. Como remover todas as linhas que começa com #, <! , //, /* no arq.php? Obrigado !

remove todas as linhas que começa com #
sed -i '/#/d' arq.php

remove todas as linhas que começa <!
sed -i '/<!/d' arq.php

não remove, imprime o resultado
sed -e '/#/d' arq.php
sed -e '/<!/d' arq.php

arq.php

<style>
.aprendiz{font-size:18px;}
/* .tata{font-size:20px;} */
</style>

<!--comentário html-->

<?php // ======================= ?>
<?php # ======================= ?>
<?php /* ======================= */ ?>

<?php
$a = 7; $b = 8; c=$a+$b;
# comentário
// comentário
/* comentário */
?>



  


2. Re: remover comentários [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 13/04/2022 - 15:14h

Fique ciente que apenas a linha iniciar com por exemplo /* não quer dizer que o restante dela tenha o outro */
Tem que fazer um analisador léxico pra remover esses comentários de forma segura, e não apenas remover a linha que iniciar com o começo do comentário.


3. Re: remover comentários

gabriel
bielwas

(usa Debian)

Enviado em 13/04/2022 - 17:41h

SamL escreveu:

Fique ciente que apenas a linha iniciar com por exemplo /* não quer dizer que o restante dela tenha o outro */
Tem que fazer um analisador léxico pra remover esses comentários de forma segura, e não apenas remover a linha que iniciar com o começo do comentário.


Entendi. O que você falou está correto, mas como remover mesmo assim, todas as linhas que começa com #, <! , //, /* ? de uma só vez ? Obrigado!


4. Re: remover comentários [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 13/04/2022 - 18:29h


bielwas escreveu:

SamL escreveu:

Fique ciente que apenas a linha iniciar com por exemplo /* não quer dizer que o restante dela tenha o outro */
Tem que fazer um analisador léxico pra remover esses comentários de forma segura, e não apenas remover a linha que iniciar com o começo do comentário.


Entendi. O que você falou está correto, mas como remover mesmo assim, todas as linhas que começa com #, <! , //, /* ? de uma só vez ? Obrigado!

Com sed é uma das alternativas, mas não a única. Outra poderia ser via um analisador léxico escrito em qualquer linguagem e ele substuiria cada comentário de forma segura. Pesquise sobre analise léxica, é bem simples de fazer.


5. Re: remover comentários [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 13/04/2022 - 19:18h


SamL escreveu:


bielwas escreveu:

SamL escreveu:

Fique ciente que apenas a linha iniciar com por exemplo /* não quer dizer que o restante dela tenha o outro */
Tem que fazer um analisador léxico pra remover esses comentários de forma segura, e não apenas remover a linha que iniciar com o começo do comentário.


Entendi. O que você falou está correto, mas como remover mesmo assim, todas as linhas que começa com #, <! , //, /* ? de uma só vez ? Obrigado!

Com sed é uma das alternativas, mas não a única. Outra poderia ser via um analisador léxico escrito em qualquer linguagem e ele substuiria cada comentário de forma segura. Pesquise sobre analise léxica, é bem simples de fazer.

Outro dia um rapaz perguntou aqui no forum sobre portugol e uma das dependências era uma analisador léxico muito interessante, mas não me recordo o nome. Era bem simples de manejar, c ele vc resolve problemas de comentários de múltiplas linhas. Pesquise no fórum pelos últimos dois meses e vc acha.



6. Re: remover comentários [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/04/2022 - 19:29h


bielwas escreveu:
Como remover mesmo assim, todas as linhas que começa com #, <! , //, /* ? de uma só vez ?

Segue sugestão:
cat arq.php
<!doctype html>
<style>
.aprendiz{font-size:18px;}
/* .tata{font-size:20px;} */
</style>

<!--comentário html-->

<!-- Mais comentários HTML
comentário
comentário
-->

<?php // ======================= ?>
<?php # ======================= ?>
<?php /* ======================= */ ?>

<?php
$a = 7; $b = 8; c=$a+$b;
# comentário
// comentário
/* comentário php */
?>

sed -i '/^#/d;/^<!--.*-->$/d;/^\/\//d;/^\/\*.*\*\/$/d;/^<!--/,/-->$/d;' arq.php 

----------------------------------------------------------------------------------------------------------------
/^#/d; Inicia com #
/^<!--.*-->$/d; Inicia com <!--qualquer coisa, e termina com -->
/^\/\//d; duas // escapadas
/^\/\*.*\*\/$/d; /* escapado, qquer coisa */ escapado
/^<!--/,/-->$/d; Da linha que inicia até a linha que termina com
______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



7. Re: remover comentários [RESOLVIDO]

gabriel
bielwas

(usa Debian)

Enviado em 13/04/2022 - 22:56h


msoliver escreveu:


bielwas escreveu:
Como remover mesmo assim, todas as linhas que começa com #, <! , //, /* ? de uma só vez ?

Segue sugestão:
cat arq.php
<!doctype html>
<style>
.aprendiz{font-size:18px;}
/* .tata{font-size:20px;} */
</style>

<!--comentário html-->

<!-- Mais comentários HTML
comentário
comentário
-->

<?php // ======================= ?>
<?php # ======================= ?>
<?php /* ======================= */ ?>

<?php
$a = 7; $b = 8; c=$a+$b;
# comentário
// comentário
/* comentário php */
?>

sed -i '/^#/d;/^<!--.*-->$/d;/^\/\//d;/^\/\*.*\*\/$/d;/^<!--/,/-->$/d;' arq.php 

----------------------------------------------------------------------------------------------------------------
/^#/d; Inicia com #
/^<!--.*-->$/d; Inicia com <!--qualquer coisa, e termina com -->
/^\/\//d; duas // escapadas
/^\/\*.*\*\/$/d; /* escapado, qquer coisa */ escapado
/^<!--/,/-->$/d; Da linha que inicia até a linha que termina com
______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________

Sem palavras. Obrigado mais uma vez. Grato!



8. Re: remover comentários [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/04/2022 - 23:14h


bielwas escreveu
Sem palavras. Obrigado mais uma vez. Grato!

Um gesto, vale mais do que
1000 palavras... :)
Só marcar a Melhor Resposta....

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts