Cristiano, Imagina se estivesse com tempo!!!
Mto obrigado, captei o conceito e vou tentar coloca-lo em prática! Valeu José Paulo 2010/7/9 Cristiano <boxferr...@gmail.com> > > > --- Em shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>, > José Paulo de Oliveira Petry <petr...@...> escreveu > > > > > Senhores, > > > > Quero montar uma base de dados com os posts que determinados usuários > > fizeram em uma determinada thread de determinados fórums online. > > > > *** > > Resumindo minha dificuldade: > > > > Minha dificuldade: Separar as informações contidas entre duas tags > > específicas, ou seja: > > > > Pegar o arquivo HTML e separar os posts (ou seja, pegar o que tiver entre > o > > <table> </table>) > > Pegar dentro de cada post a data e hora do mesmo ( ou seja, pegar o que > > tiver entre as tags <!-- status icon and date --> e <!-- / status icon > and > > date --> ) > > Pegar dentro de cada post a mensagem propriamente dita ( ou seja, pegar o > > que tiver entre as tags <!-- message --> e <!-- / message --> ) > > *** > > Petry, boa tarde. O dia está corrido e confesso que não li todo o seu post. > Parei onde você começa a contar a história. > > Mas, se entendi pela parte cotada acima, a estrutura do seu arquivo é: > > <table> > ... talvez alguma coisa ... > > <!-- status icon and date --> > ... talvez outras coisas ... > > <!-- message --> > ... texto da sua mensagem ... > <!-- / message --> > > ... talvez mais outras coisas ... > <!-- / status icon and date --> > > ... talvez mais alguma coisa ... > </table> > > Se for isso, para pegar tudo que existe entre 2 tags, sed é um bom caminho. > > Vamos a um exemplo: > > Considere a seguinte página da wikipedia: > > http://tinyurl.com/2bk34lv > > Suponha que eu salvei o código fonte dela no arquivo chamado > 'ponto_fusao.html'. Veja este código fonte aqui: > > http://pastebin.com/hKUUFJ63 > > Então, se eu quero só a tabela com os pontos de fusão de cada elemento, > preciso pegar tudo o que estiver dentro das tags <table> e </table>. > > Basta usar o de endereços e intervalo do sed: > > sed -n '/<table.*>/,/<\/table>/p' ponto_fusao.html > > No exemplo acima, a opção -n suprime a saída automática, sendo exibido > apenas o que for explicitamente solicitado (comando p). > > O sed pesquisa todas as linhas contidas no intervalo entre a primeira linha > que coincidir com o que estiver dentro do primeiro grupo delimitado pela /, > ou seja /<table.*>/, até a última linha que casar com o conteúdo do segundo > grupo delimitado pela /, ou seja, <\/table>. > > Neste segundo grupo, a contrabarra (\) serve para 'escapar' a barra normal > (/) para que ela seja interpretada literalmente e não como o delimitador da > pesquisa. > > Em seguida, o comando p imprimi todo o que estiver neste intervalo. > > Você pode usar este conceito para fazer sua pesquisa e, se desejar > delimitar ainda mais, pegando apenas um 'sub-intervalo' dentro do seu > intervalo, pode usar o limitadores { e } para executar um segundo bloco de > comandos apenas dentro deste primeiro intervalo. > > No seu caso, a pesquisa de um novo intervalo, dentro do intervalo > localizado, conforme exemplo abaixo, que retornaria apenas a linha da tabela > que contém o elemento 'Carbono': > > sed -n '/<table.*>/,/<\/table>/{/Carbono/,/<\/tr>/p}' ponto_fusao.html > > Se você testou o código acima, viu que a tag <tr> não foi listada, pois a > instrução pedia para iniciar o intervalo pela linha que contém 'carbono'. > > Não é a solução para o seu problema, mas é um caminho. Dá para melhor muito > este código. > > Na correia que está hoje, foi o que deu para arrumar. > > Abraço > > Cristiano > > > [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: shell-script-unsubscr...@yahoogrupos.com.br --------------------------------------------------------------------- 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 <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: shell-script-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html