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

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

Re: [shell-script] Regexp - Extraindo XML


From: jimmy
Subject: Re: [shell-script] Regexp - Extraindo XML
Date: Mon, 1 Sep 2008 17:41:49 -0300
User-agent: Mutt/1.4.2.3i

_______________________________________________________________________________

se a estrutura do arquivo for exatamente como mencionado, tente esse script 
em sed:

--------------------------------------------------
#!/usr/bin/sed -f

H;
$!d;
x;

s/\n\+//g;
s/>[ \t]\+</></g;
h;
s/<raiz><folha>\(<nomefolha>[^<]*<\/nomefolha>\)<\/folha>.*/\1\n/;w folha1
g;
s/.*<\/folha><folha>\(<nomefolha>[^<]*<\/nomefolha>\)<\/folha><folha>.*/\1\n/;w 
folha2
g;
s/.*<folha>\(<nomefolha>[^<]*<\/nomefolha>\)<\/folha><\/raiz>/\1\n/;w folha3
x;
d;
--------------------------------------------------


_______________________________________________________________________________
On Fri, Aug 29, 2008 at 04:34:40PM -0300, address@hidden wrote:
> Pessoal gostaria da ajuda de voces para um problema aparentemente simples que 
> so consegui resolver via perl e gostaria de fazê-lo via bash, eu tenho um 
> arquivo XML com a seguinte estrutura :
> 
> <raiz>
>   <folha>
>     <nomefolha>folha1</nomefolha>
>   </folha>
>   <folha>
>     <nomefolha>folha2</nomefolha>
>   </folha>
>   <folha>
>     <nomefolha>folha2</nomefolha>
>   </folha>
> </raiz>
> 
> gostaria de transformar este arquivo em varios arquivos com onome folha1, 
> folha2, folha3 contendo tudo que esta entre <folha> e </folha>, parece algo 
> simples mas ja tentei e nao obtive soluçao facil usando as ferramentas 
> tradicionais, apelei para o perl e usando as bibliotecas internas que lidam 
> com xml consegui, porem eh mais complexo do que eu queria e ai nao consigo 
> explicar a outra pessoa pra dar manutençao sem que a mesma conheça bastante 
> de perl o que dificulta, se fosse bash puro com os sed e semelhantes seria 
> facil de explicar e deixar isso para ser mantido por outra pessoa..
> 
> abraços a todos
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> ------------------------------------
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
> Links do Yahoo! Grupos
> 
_______________________________________________________________________________


reply via email to

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