shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] expressão regular


From: miranda
Subject: Re: [shell-script] expressão regular
Date: Thu, 25 Apr 2013 10:11:39 -0300

Veja se isso funciona para seu arquivo.
No que usei de teste funcionou
inclusive com mais de um comentario por linha

awk -f comment.awk web.xml

[miranda@guitar ~]$ cat comment.awk
BEGIN{FLAG="1";}
$0 ~ /<!--/ {FLAG="0"};
FLAG=="0" {
  IMP="1";
  z=split($0,VET," ");
  for (i=1;i <= z;i++){
    if(VET[i] ~ /<!--/)
      IMP="0";
    if ( IMP == "1")
      printf("%s ",VET[i]);
    if(VET[i] ~ /-->/)
      IMP="1";
  };
}
$0 !~ /<!--/ && FLAG=="1"  {print};
$0 ~ /-->/ {FLAG=1}

On Wed, 2013-04-24 at 07:24 -0700, Bruno Viana wrote:

>   
> 
> 
> 
> Pessoal,
> 
> Estou com o seguinte problema:
> 
> Tenho um arquivo xml e estou querendo tirar os comentários que são
> delimitados por "<!--" e termina com "-->"  eles podem esta na mesma
> linha ou não ai fiz o seguinte:
> 
> $ cat arquivo.xml | tr '\n' '|' |  sed 's#<!--.*-->##' | tr '|' '\n'
> 
> Primeiro substituir as quebras de linhas por "|" para ficar tudo na
> mesma linha depois usei o sed para substituir o comentário por nada
> depois voltei com o quebra de linha.
> 
> Isso quase que funcionou porém ele começou substituir na inicio do
> primeiro comentário e terminou no final do ultimo comentário e tudo
> que estava no meio foi embora :-(
> 
> Como eu faço para a expressão ".*" parar quando chegar em "-->" ? 
> 
> Ou se teria uma forma mais elegante de fazer isso.
> 
> Desde já agradeço a atenção de todos.
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 
> 


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]