_______________________________________________________________________________
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, [EMAIL PROTECTED] 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: [EMAIL PROTECTED] > --------------------------------------------------------------------- > 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 > _______________________________________________________________________________
