<html><head><base href="x-msg://11/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Não por isso!<div><br></div><div>perl -F, -nale 'push @{ $pessoa{$F[0]}-&gt;{A} }, $F[1];&nbsp;push @{ $pessoa{$F[0]}-&gt;{B} }, $F[2];&nbsp;END{print "$_ =&gt; ", join(", ", @{ $pessoa{$_}-&gt;{A} }), "$/\t", join(", ", @{ $pessoa{$_}-&gt;{B} }), for keys %pessoa}' arquivo.txt</div><div><div><div><br></div><div><br></div><div>Em 22/02/2011, às 10:58, Leonardo Gerheim escreveu:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, helvetica, sans-serif; font-size: 10pt; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">A resposta do Fernando foi muito d+, Show de bola mesmo.<br><br>&nbsp;&nbsp;&nbsp; Mas devido a forma que chegou o email para vocês, acho que não entenderam como deveria ser a disposição das notas na saída, porque dessa forma que vocês fizeram eu também fiz, não tão impressionantemente em uma linha.<br>&nbsp;&nbsp;&nbsp; A disposição das notas dever ser a nota A (NEGRITO) em cima na nota B (NORMAL) assim:<br><br>INPUT:<br><br>joao,<span style="font-weight: bold; ">1</span>,1<br>joao,<span style="font-weight: bold; ">2</span>,1<br>joao,<span style="font-weight: bold; ">1</span>,2<br>maria,<span style="font-weight: bold; ">1</span>,1<br>maria,<span style="font-weight: bold; ">2</span>,1<br>maria,<span style="font-weight: bold; ">1</span>,2<br><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, helvetica, sans-serif; font-size: 10pt; ">OUTPUT:<br><br>joao =&gt;<span class="Apple-converted-space">&nbsp;</span><span style="font-weight: bold; ">1</span>,<span style="font-weight: bold; ">2</span>,<span style="font-weight: bold; ">1</span><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1,1,2<br><br>maria =&gt;<span class="Apple-converted-space">&nbsp;</span><span style="font-weight: bold; ">1</span>,<span style="font-weight: bold; ">2</span>,<span style="font-weight: bold; ">1</span><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,1,2<br><br><br>&nbsp;&nbsp;&nbsp; Entenderam? Por isso perguntei como faria para avançar e recuar uma linha.<br>&nbsp;&nbsp;&nbsp; Vlw pela força até agora.<br><br><br><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold; ">De:</span></b><span class="Apple-converted-space">&nbsp;</span>Renato Santos &lt;<a href="mailto:renato.cron@gmail.com">renato.cron@gmail.com</a>&gt;<br><b><span style="font-weight: bold; ">Para:</span></b><span class="Apple-converted-space">&nbsp;</span>Cascavel Perl Mongers &lt;<a href="mailto:cascavel-pm@pm.org">cascavel-pm@pm.org</a>&gt;<br><b><span style="font-weight: bold; ">Enviadas:</span></b><span class="Apple-converted-space">&nbsp;</span>Terça-feira, 22 de Fevereiro de 2011 10:40:37<br><b><span style="font-weight: bold; ">Assunto:</span></b><span class="Apple-converted-space">&nbsp;</span>Re: [Cascavel-pm] Res: Acesso aleatório à arquivos<br></font><br>Fernando, funcionou!<blockquote class="webkit-indent-blockquote" style="margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 40px; border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">joao =&gt; 10, 15, 10, 10, 8, 9</div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">maria =&gt; 7, 9, 6, 9, 4, 10</div></div></blockquote><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">O que o perl (GOLF =P) do Fernando faz é utilizar os argumentos do perl já dizendo que é para ler um arquivo (-n) separar por virgula (-F,) jogando cada item da linha para a @F (-a) remove o "enter" em cada linha (usando - l sem passar nenhum código) e o código em si, -e .</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Coragem escrever isso no celular eim! Aja paciencia!</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ps: legal o uso do END {}, nunca tinha pensando nisso.</div><br><div class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">2011/2/22 Fernando Oliveira<span class="Apple-converted-space">&nbsp;</span><span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:fernandocorrea@gmail.com" target="_blank" href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex; "><p>Não é q faltou o for?! Pq ninguem me avisou?!</p><div><br class="webkit-block-placeholder"></div><div class="im" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Em 22/02/2011 10:17, "Fernando Oliveira" &lt;<a rel="nofollow" ymailto="mailto:fernandocorrea@gmail.com" target="_blank" href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>&gt; escreveu:<br>&gt;<br></div>perl -F, -nale 'push @{ $pessoa{$F[0]} }, @F[1 .. $#F]; END{print "$_ =&gt; ", join ", ", @{ $pessoa{$_} } for keys %pessoa}' arquivo.txt<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></div><div class="h5" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br>&gt;<br>&gt; Codigo escrito no cel e não testado!<br>&gt; GOLF?!<br>&gt;<br>&gt; Em 22/02/2011 09:36, "Leonardo Gerheim" &lt;<a rel="nofollow" ymailto="mailto:general_andrade@yahoo.com.br" target="_blank" href="mailto:general_andrade@yahoo.com.br">general_andrade@yahoo.com.br</a>&gt; escreveu:<br>&gt;<br>&gt; &gt; Agradeço à todos pelas respostas. Mas realmente não consegui me expressar,<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; como coloquei um exemplo não específico ficou realmente complicado o<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; entendimento. A minha intenção é a seguinte:<br>&gt; &gt; Eu quero poder movimentar dentro do arquivo, ou seja, avançar e recuar uma<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; uma linha do arquivo.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; ex de INPUT:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; joao,10,15<br>&gt; &gt; joao,10,10<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; joao,8,9<br>&gt; &gt; maria,7,9<br>&gt; &gt; maria,6,9<br>&gt; &gt; maria,4,10<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; onde temos respectivamente o nome do aluno a nota A e a nota B, mas queremos<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; gerar um OUTPUT:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; joao 10,10,8<br>&gt; &gt; 15,10,9<br>&gt; &gt; maria 7,6,4<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; 9,9,10<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Ou seja, uma nota após a outra.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Para isso, pensei em ler a primeira linha, imprimir as notas notas uma<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; embaixo da outra, logoa após isso teria que retornar à primneira linha para<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; imprimir o segundo conjunto de notas, enquanto o nome do aluno for o mesmo. O<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; que não consegui fazer é essa parte de movimentar dentro do arquivo, avançando e<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; recuando em arquivos que tenham registros de tamanho diferente.<br>&gt; &gt; Caso existe um algoritmo mais simples por for me ajudem a montá-lo, mas de<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; qualquer forma me expliquei como avançar e recuar linhas.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Att.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; P.S: A solução do Eden na sua última resposta resolveu a última questão, eu que<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; me expressei totalmente mal.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; ________________________________<br>&gt; &gt; De: Eden Cardim &lt;<a rel="nofollow" ymailto="mailto:edencardim@gmail.com" target="_blank" href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>&gt;<br>&gt; &gt; Para: Cascavel Perl Mongers &lt;<a rel="nofollow" ymailto="mailto:cascavel-pm@pm.org" target="_blank" href="mailto:cascavel-pm@pm.org">cascavel-pm@pm.org</a>&gt;<br>&gt; &gt; Enviadas: Terça-feira, 22 de Fevereiro de 2011 9:04:35<br>&gt; &gt; Assunto: Re: [Cascavel-pm] Acesso aleatório à arquivos<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;&gt;&gt;&gt;&gt;&gt; "Leonardo" == Leonardo Gerheim &lt;<a rel="nofollow" ymailto="mailto:general_andrade@yahoo.com.br" target="_blank" href="mailto:general_andrade@yahoo.com.br">general_andrade@yahoo.com.br</a>&gt; writes:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Leonardo&gt; Olá pessoal, Preciso ler um arquivo e quando em uma<br>&gt; &gt; Leonardo&gt; determinada linha contiver um valor, ele pular para a<br>&gt; &gt; Leonardo&gt; próxima linha e quando encontrar um segundo valor não<br>&gt; &gt; Leonardo&gt; imprimir mais nada, como no exemplo abaixo:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Não ficou claro o que você quer aqui, mostra um exemplo da entrada e da<br>&gt; &gt; saída esperada.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Leonardo&gt; joao- não imprimir<br>&gt; &gt; Leonardo&gt; maria- não imprimir<br>&gt; &gt; Leonardo&gt; antonio- não imprimir<br>&gt; &gt; Leonardo&gt; a- não imprimir<br>&gt; &gt; Leonardo&gt; linguagem- IMPRIMIR<br>&gt; &gt; Leonardo&gt; programacao- IMPRIMIR<br>&gt; &gt; Leonardo&gt; b- não imprimir<br>&gt; &gt; Leonardo&gt; elizabeth- não imprimir<br>&gt; &gt; Leonardo&gt; kenia- não imprimir<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Isso é a entrada ou a saída do programa?<br>&gt; &gt; grep não resolve?<br>&gt; &gt; ,----[ cat test_data ]<br>&gt; &gt; | joao<br>&gt; &gt; | maria<br>&gt; &gt; | antonio<br>&gt; &gt; | a<br>&gt; &gt; | linguagem<br>&gt; &gt; | programacao<br>&gt; &gt; | b<br>&gt; &gt; | elizabeth<br>&gt; &gt; | kenia<br>&gt; &gt; `----<br>&gt; &gt; ,----[ cat test_data | grep "linguagem\|programacao" ]<br>&gt; &gt; | linguagem<br>&gt; &gt; | programacao<br>&gt; &gt; `----<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Leonardo&gt; Eu consegui fazer um script para isso, entretanto<br>&gt; &gt; Leonardo&gt; somente consegui que ele funcione, quando o amanho dos<br>&gt; &gt; Leonardo&gt; registros são iguais. Como faço para resolver esse<br>&gt; &gt; Leonardo&gt; problema tendo um arquivo com registros de tamnho<br>&gt; &gt; Leonardo&gt; diferente?<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Se você mostrar o código, com um exemplo da execução, fica mais fácil te<br>&gt; &gt; ajudar.<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; --<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt; Eden Cardim<br>&gt; &gt; Software Engineer<br>&gt; &gt; +55 73 9986-3963<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a rel="nofollow" target="_blank" href="http://edencardim.com">edencardim.com</a><br>&gt; &gt; _______________________________________________<br>&gt; &gt; Cascavel-pm mailing list<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a rel="nofollow" ymailto="mailto:Cascavel-pm@pm.org" target="_blank" href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a rel="nofollow" target="_blank" href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><br></div></div><div><br class="webkit-block-placeholder"></div><br>_______________________________________________<br>Cascavel-pm mailing list<br><a rel="nofollow" ymailto="mailto:Cascavel-pm@pm.org" target="_blank" href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a rel="nofollow" target="_blank" href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>--<span class="Apple-converted-space">&nbsp;</span><br>Renato Santos<br><a rel="nofollow" target="_blank" href="http://www.renatocron.com/blog/">http://www.renatocron.com/blog/</a><br></div></div></div></div><br>&nbsp;_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a></div></span></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Just Another Perl Hacker<br>Fernando Corrêa de Oliveira<br><a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a></span>
</div>
<br></div></body></html>