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: Tiago Peczenyj
Subject: Re: [shell-script] expressão regular
Date: Wed, 24 Apr 2013 11:32:20 -0300

Ola

Não faça isso usando expressões regulares a menos que vc tenha certeza que
os comentarios seguem algum tipo de regularidade.

Apesar de ser plenamente possivel, vc esta ignorando o formado do arquivo,
tratando como texto e não como xml, ou seja, uma arvore.

vc até pode procurar fazendo algo como

/<!--/, /-->/{ comandos }

porém vc pode ter surpresas.

minha dica: use programas que processem xml como o tidy

bash$ tidy -quiet -asxml -xml -indent -wrap 1024 --hide-comments 1
arquivo.xml > novo_arquivo.xml

ou xmlstarlet

bash$ xmlstarlet c14n --without-comments old.xml > new.xml





2013/4/24 Bruno Viana <address@hidden>

> **
>
>
>
>
> 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]
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj


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



reply via email to

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