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

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

Re: [shell-script] Separando trechos de arquivo


From: Tiago Peczenyj
Subject: Re: [shell-script] Separando trechos de arquivo
Date: Wed, 7 Apr 2010 12:51:12 -0300

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

2010/4/7 Andrea VB <address@hidden>

>
>
> 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.
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


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



reply via email to

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