Ô Andrea, cuméque uma jogadora de xadrez pode achar a resposta do Tiago complicada? A solução do Tiago está ótima! Ele resolveu um problemão em 2 linhas... A linha seguinte, que ele não escreveu, seria um grep -lF "1. d4 d5 2. c4 c6 3. e3" split_*
Esta linha produziria os nomes dos arquivos que possuem a cadeia que vc procura. Se vc quiser concatenar todos em um só arquivo, troque-a por: cat $(grep -lF "1. d4 d5 2. c4 c6 3. e3" split_*) > ArqConcatenado Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - Floripa turma Shell 12/04 http://www.seventreinamentos.com.br; - DF turma de Shell em 17/04 - ligue (61) 3223-3000; - Aracaju turma de Shell em 12/05 - andersonriz...@gmail.com; - RJ turma de Shell em 14/06 - ligue (21)2210-6061; - Turmas fechadas em outras cidades ligue (21) 8112-9988. Em 7 de abril de 2010 13:01, Andrea VB <andreavb1...@gmail.com> escreveu: > > > Oi, Tiago, tudo bem? > > Obrigada pela pronta resposta! > > 2010/4/7 Tiago Peczenyj: > > > sugiro separar com awk > > > > $ cat teste > > [evento] > > um > > dois > > [evento] > > tres > > quatro > > > > $ awk '/\[evento\]/{ i++; } { print >> "split_" i;}' teste > > > > $ cat split_1 > > [evento] > > um > > dois > > > > $ cat split_2 > > [evento] > > tres > > quatro > > > > Basicamente eu somo 1 a variavel i para cada cabeçalho [evento] -- > substitua > > pelo seu -- e escrevo no final do arquivo split_ concatenado com i > > > > boa sorte se isto lhe ajudar > > Ajuda, claro. :) > Mas daí eu teria que: > 1) Fazer o split dos arquivos > 2) Selecionar os arquivos que interessam (ié, possuem a string "1. d4 > d5 2. c4 c6 3. e3") > 3) Juntar os arquivos separados no passo 2. > > Acredito que deva haver uma solução mais simples... > Meu problema, basicamente, é o que está entre a tag Event e o início > do jogo (as outras tags, por serem variáveis). > > Obrigada, > Andrea > > > 2010/4/7 Andrea VB: > > > > >> > >> > >> Boa tarde, pessoal! > >> > >> Tenho um arquivo PGN com muitas partidas de xadrez e gostaria de > >> automatizar a seleção das partidas que vou estudar. > >> > >> Cada partida é anotada como abaixo, sempre começando com uma tag > >> [Event "*"], porém sem indicativo do final -- na verdade, há vários > >> tipos diferentes. Portanto, vou considerar dois casos como fim de > >> partida: > >> 1) Início de outra partida > >> 2) Final do arquivo > >> > >> Meu objetivo: Separar as partidas começadas com determinada abertura, > >> por exemplo "1. d4 d5 2. c4 c6 3. e3". O problema é que eu precisaria > >> pegar TODO o código referente à partida (ié, desde a tag Event, não > >> apenas os lances). > >> Lembro de ter visto algo parecido em SED, em tempos muito remotos. > >> Porém, não encontrei as palavras-chave certas para procurar > >> novamente... > >> > >> Eu imaginava algo do tipo: > >> > >> $ sed '/[Event].*.1. d4 d5 2. c4 c6 3. e3.*.[Event]/p' twic801.pgn >> > >> gp.pgn > >> > >> porém isto não está separando nada. :( > >> > >> Alguma ajuda, ideia, qualquer coisa? > >> Obrigada desde já, > >> Andrea VB > >> > >> ''' > >> [Event "19th Amber Blindfold"] > >> [Site "Nice FRA"] > >> [Date "2010.03.13"] > >> [Round "1"] > >> [White "Ponomariov,R"] > >> [Black "Gelfand,B"] > >> [Result "1-0"] > >> [WhiteElo "2737"] > >> [BlackElo "2750"] > >> [EventDate "2010.03.13"] > >> [ECO "D10"] > >> > >> 1. d4 d5 2. c4 c6 3. e3 Nf6 4. Bd3 Bg4 5. Ne2 e6 6. Qb3 Qc7 7. Ng3 Nh5 > 8. > >> Nc3 Nd7 9. Bd2 Nb6 10. c5 Nd7 11. e4 Nxg3 12. hxg3 dxe4 13. Nxe4 Bf5 14. > >> Bf4 e5 15. Ng5 Nxc5 16. dxc5 Bxd3 17. O-O-O O-O-O 18. Nxf7 Rd5 19. Rxd3 > >> Qxf7 20. Rxd5 cxd5 21. Bxe5 Bxc5 22. f4 b6 23. Qc2 Kb7 24. Rxh7 Rg8 25. > Kb1 > >> a5 26. a3 d4 27. Qe4+ Ka7 28. Qd3 Qb7 29. Ka2 Qd5+ 30. Qb3 Rd8 31. Qxd5 > >> Rxd5 32. Rxg7+ Ka6 33. Rh7 d3 34. Rh1 Bf2 35. g4 d2 36. Rd1 Be3 37. g3 > Bf2 > >> 38. g5 Bxg3 39. g6 Rd8 40. g7 a4 41. Rxd2 1-0 > >> > >> [Event "19th Amber Blindfold"] > >> [Site "Nice FRA"] > >> [Date "2010.03.13"] > >> [Round "1"] > >> [White "Grischuk,A"] > >> [Black "Kramnik,V"] > >> [Result "1-0"] > >> [WhiteElo "2756"] > >> [BlackElo "2790"] > >> [EventDate "2010.03.13"] > >> [ECO "D38"] > >> > >> 1. d4 Nf6 2. c4 e6 3. Nf3 d5 4. Nc3 Bb4 5. cxd5 exd5 6. Bg5 Nbd7 7. Qc2 > O-O > >> 8. a3 Bxc3+ 9. Qxc3 h6 10. Bh4 c5 11. Nd2 c4 12. g4 b5 13. Bg2 Nb6 14. > h3 > >> Re8 15. e3 a5 16. O-O Qd6 17. Qc2 Bd7 18. Rfe1 Rac8 19. Bg3 Qc6 20. Be5 > b4 > >> 21. axb4 axb4 22. e4 c3 23. exd5 Nfxd5 24. bxc3 bxc3 25. Ne4 Qg6 26. Qb3 > c2 > >> 27. Nc5 Rxe5 28. Rxe5 Nf4 29. Rc1 Bc6 30. Qxb6 Nxg2 31. Qa6 Ra8 32. Qd3 > Nh4 > >> 33. Re3 Qg5 34. Ne4 Nf3+ 35. Kg2 Qf4 36. d5 Ne5 37. Qxc2 Bxd5 38. Rd1 > Nxg4 > >> 39. hxg4 Qxg4+ 40. Kf1 Ra2 41. Qd3 Qh4 42. Nf6+ gxf6 43. Rg3+ 1-0 > >> ''' > > -- > Andrea VB > Please, don't CC me when replying to me on the lists, and use BCC when > sending mass e-mails. > > [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