[Rio-pm] Tratamento de dados para CSV
Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Abraços -- -- Manoel Domingues Junior Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados é o primeiro passo para a comunidade. IBM - Prodigy Linux ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Vários :) http://sao-paulo.pm.org/artigo/2011/CSVENTREPIPEEDBMS ABS() 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Abraços -- -- Manoel Domingues Junior Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados é o primeiro passo para a comunidade. IBM - Prodigy Linux ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Ola eu uso Class::CSV use Class::CSV; my $csv = Class::CSV-new( fields = [qw/userid username/] ); $csv-add_line([2063, 'testuser1']); $csv-add_line([2064, 'testuser2']); $csv-add_line([2065, 'testuser3']); $csv-add_line([2066, 'testuser4']); $csv-add_line([2067, 'testuser5']); $csv-add_line([2068, 'testuser6']); $csv-print(); Pode ser que ajude-o. Em 1 de junho de 2012 11:17, Stanislaw Pusep creakt...@gmail.com escreveu: Vários :) http://sao-paulo.pm.org/artigo/2011/CSVENTREPIPEEDBMS ABS() 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Abraços -- -- Manoel Domingues Junior Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados é o primeiro passo para a comunidade. IBM - Prodigy Linux ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- ** .: Inteligência Coletiva :. Uma inteligência distribuída por toda parte: tal é o nosso axioma inicial. Ninguém sabe tudo, todos sabem alguma coisa, todo o saber está na humanidade’. (Pierre Lévy) ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Breno, Me pareceu q ele quer fazer uma tabela relacionando os dados da 1a coluna com os da 1a linha... Tipo assim: Pedro Manoel Manoel XJoão XPedro X É isso? Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 11:47, breno br...@rio.pm.org escreveu: 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Exatamente isso. Relacionar a primeira coluna com a primeira linha. A geração de matrizes assim para visualização de dados tem um nome, só não consigo lembrar... Abraços Em 01/06/12, Fernando Oliveirafernandocor...@gmail.com escreveu: Breno, Me pareceu q ele quer fazer uma tabela relacionando os dados da 1a coluna com os da 1a linha... Tipo assim: Pedro Manoel Manoel XJoão XPedro X É isso? Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 11:47, breno br...@rio.pm.org escreveu: 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- -- Manoel Domingues Junior Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados é o primeiro passo para a comunidade. IBM - Prodigy Linux ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Assumindo q exita o arquivo: tabela.txt contendo: Manoel;Pedro Joao;Pedro Pedro;Manoel GOLF?! minha 1a tacada: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.com escreveu: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface user-friendly para o Text::CSV que, apesar de funcionar muito bem, é bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV, porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV). ABS() 2012/6/1 breno br...@rio.pm.org 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
s/exita/exista/ Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:32, Fernando Oliveira fernandocor...@gmail.comescreveu: Assumindo q exita o arquivo: tabela.txt contendo: Manoel;Pedro Joao;Pedro Pedro;Manoel GOLF?! minha 1a tacada: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface user-friendly para o Text::CSV que, apesar de funcionar muito bem, é bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV, porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV). ABS() 2012/6/1 breno br...@rio.pm.org 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Menor: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,sort{$l{$a}=$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:34, Fernando Oliveira fernandocor...@gmail.comescreveu: s/exita/exista/ Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:32, Fernando Oliveira fernandocor...@gmail.comescreveu: Assumindo q exita o arquivo: tabela.txt contendo: Manoel;Pedro Joao;Pedro Pedro;Manoel GOLF?! minha 1a tacada: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface user-friendly para o Text::CSV que, apesar de funcionar muito bem, é bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV, porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV). ABS() 2012/6/1 breno br...@rio.pm.org 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
menor: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,keys%l;say$_,@{$c{$_}}[values%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:56, Fernando Oliveira fernandocor...@gmail.comescreveu: Menor: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,sort{$l{$a}=$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:34, Fernando Oliveira fernandocor...@gmail.comescreveu: s/exita/exista/ Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:32, Fernando Oliveira fernandocor...@gmail.comescreveu: Assumindo q exita o arquivo: tabela.txt contendo: Manoel;Pedro Joao;Pedro Pedro;Manoel GOLF?! minha 1a tacada: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface user-friendly para o Text::CSV que, apesar de funcionar muito bem, é bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV, porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV). ABS() 2012/6/1 breno br...@rio.pm.org 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ABS() 2012/6/1 Fernando Oliveira fernandocor...@gmail.com Menor: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,sort{$l{$a}=$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:34, Fernando Oliveira fernandocor...@gmail.comescreveu: s/exita/exista/ Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:32, Fernando Oliveira fernandocor...@gmail.comescreveu: Assumindo q exita o arquivo: tabela.txt contendo: Manoel;Pedro Joao;Pedro Pedro;Manoel GOLF?! minha 1a tacada: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface user-friendly para o Text::CSV que, apesar de funcionar muito bem, é bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV, porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV). ABS() 2012/6/1 breno br...@rio.pm.org 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 13:00, Stanislaw Pusep creakt...@gmail.com escreveu: perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Mas é claro! perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=keys%m;say $_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ABS() On Fri, Jun 1, 2012 at 1:03 PM, Fernando Oliveira fernandocor...@gmail.comwrote: perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 13:00, Stanislaw Pusep creakt...@gmail.comescreveu: perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
perl -F\; -lanE'$,=;;++$m{$F[0]}{$F[1]}}{say X=keys%m;say$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
menor ainda ;) perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=;;say X=keys%m;say $_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ABS() 2012/6/1 Fernando Oliveira fernandocor...@gmail.com menor: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,keys%l;say$_,@{$c{$_}}[values%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:56, Fernando Oliveira fernandocor...@gmail.comescreveu: Menor: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,sort{$l{$a}=$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:34, Fernando Oliveira fernandocor...@gmail.comescreveu: s/exita/exista/ Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:32, Fernando Oliveira fernandocor...@gmail.com escreveu: Assumindo q exita o arquivo: tabela.txt contendo: Manoel;Pedro Joao;Pedro Pedro;Manoel GOLF?! minha 1a tacada: perl -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface user-friendly para o Text::CSV que, apesar de funcionar muito bem, é bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV, porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV). ABS() 2012/6/1 breno br...@rio.pm.org 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com: Olá pessoal, Estou com um dificuldade em encontrar um módulo no cpan que me ajude a fazer a geração de uma matriz... Eu obtenho os dados de um software no seguinte formato: Manoel;Pedro João;Pedro Pedro;Manoel Esses dados eu gostaria de colocar em uma matriz do tipo: X; Pedro;Manoel; Manoel; 1;; João;1;; Pedro;;1; Alguém conhece algum módulo que me permita fazer isso? Manoel, desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei direito, mas não entendi o que vc está fazendo... Supondo que vc tem uma lista na forma: my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); você pode gerar uma nova lista fazendo algo como: my @nova = (); foreach my $linha (@linhas) { my @campos = split /\s*;\s*/ = $linha; # modifique @campos como bem entender... push @nova, join ';' = @campos; } é isso? []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
2012/6/1 Stanislaw Pusep creakt...@gmail.com: @breno, infelizmente, se for um CSV gerado por algumas ferramentas de escritório cujo nome não quero citar nessa lista, expressão regular não basta, já dizia o brian d foy: http://www.effectiveperlprogramming.com/blog/1386 Ah, claro, vale tudo em CSV, só imaginei que o Manoel tinha algum controle sobre os dados de entrada =) ---8--- use strict; use warnings; use utf8; my @linhas = ( 'Manoel;Pedro', 'João;Pedro', 'Pedro;Manoel', ); my @header = qw( X Pedro Manoel ); my @result = (); foreach (@linhas) { my @colunas = split /\s*;\s*/; my @nova; foreach my $i ( 1 .. $#header ) { $nova[$i-1] = $colunas[1] eq $header[$i] ? 1 : ''; } { no warnings 'uninitialized'; push @result, join ';' = $colunas[0], @nova; } } ---8--- Isso atende? Caso sim, dá licença então que vou brincar de golfe :) []s -b ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 13:03, Stanislaw Pusep creakt...@gmail.com escreveu: perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=;;say X=keys%m;say $_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
pq chomp? perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt []s -b On Fri, Jun 1, 2012 at 1:09 PM, Fernando Oliveira fernandocor...@gmail.com wrote: perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 13:03, Stanislaw Pusep creakt...@gmail.com escreveu: perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=;;say X=keys%m;say $_,@{$m{$_}}{keys%m}for keys%m' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
perl -lnE'/;/;$,=$;++$m{$`}{$´}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt tinha esquecido o ; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com perl -lnE'/;/;$,=$++$m{$`}{$´}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Tem algo errado Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com perl -lnE'/;/;$,=$;++$m{$`}{$´}}{say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt tinha esquecido o ; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com perl -lnE'/;/;$,=$++$m{$`}{$´}}{say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
perl -lnE'/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a ' tabela.txt Esse funciona Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 13:17, Fernando Oliveira fernandocor...@gmail.comescreveu: Tem algo errado Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com perl -lnE'/;/;$,=$;++$m{$`}{$´}}{say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt tinha esquecido o ; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com perl -lnE'/;/;$,=$++$m{$`}{$´}}{say X=@a=keys%m;say $_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
On Fri, Jun 1, 2012 at 1:18 PM, Fernando Oliveira fernandocor...@gmail.com wrote: perl -lnE'/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt Esse funciona Aqui não =) ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
-1 perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt On Fri, Jun 1, 2012 at 1:19 PM, breno br...@rio.pm.org wrote: On Fri, Jun 1, 2012 at 1:18 PM, Fernando Oliveira fernandocor...@gmail.com wrote: perl -lnE'/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt Esse funciona Aqui não =) ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.comwrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.com wrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Pois é... aqui no trabalho é assim... :( Eu garanto q vc não desgostou mais q eu... :( Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Stanislaw Pusep creakt...@gmail.com C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
bom... aqui no windows funfa... :P no windows eu to usando o no -e... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.comwrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
C:\perl -lnE$m{$`}{$'}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com bom... aqui no windows funfa... :P no windows eu to usando o no -e... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.comwrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Em bash, pelo menos, teria que rodar como: perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ABS() On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira fernandocor...@gmail.comwrote: C:\perl -lnE$m{$`}{$'}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com bom... aqui no windows funfa... :P no windows eu to usando o no -e... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.comwrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Então façamos como arquivo: #!perl -ln $m{$`}{$'}=/;/;$,=$}{print X=@a=keys%m;print$_,@{$m{$_}}{@a}for@a Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Stanislaw Pusep creakt...@gmail.com Em bash, pelo menos, teria que rodar como: perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ABS() On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE$m{$`}{$'}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com bom... aqui no windows funfa... :P no windows eu to usando o no -e... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.comwrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Se a segunda coluna tiver mais elementos inexistentes na 1a, esses não aparecem. Continuamos assim? ou voltamos do inicio? Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com Mas e então? O arquivo foi aceito? E tem mais uma coisa: desde a 1a tacada do Stanislaw, se os elementos de antes do ; forem diferentes do de depois, a tabela fica errada... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com Então façamos como arquivo: #!perl -ln $m{$`}{$'}=/;/;$,=$}{print X=@a=keys%m;print$_,@{$m{$_}}{@a}for@a Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Stanislaw Pusep creakt...@gmail.com Em bash, pelo menos, teria que rodar como: perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ABS() On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE$m{$`}{$'}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com bom... aqui no windows funfa... :P no windows eu to usando o no -e... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.comwrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
Bom, nova tacada, voltando aos requisitos originais: #!perl -ln /;/;$,=$;$l{$'}//=$i++;$c{$`}[$l{$'}]=1}{print X=keys%l;print $_,@{$c{$_}}[values%l]for keys%c Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 14:54, Manoel Domingues Junior manoel.domingues.jun...@gmail.com escreveu: Eu ainda estou testando todas as alternativas dadas e tentando entender algumas...rsrs Em tese, a primeira coluna e primeira linha não tem relação uma com as outras, ou seja, os dados podem se repetir ou não... Estava pensando em usar o Text::CSV para adicionar um elemento (no caso 1) na posicao $1 $2, onde: ($a0,$a1) = (Manoel,João) Se der erro, vejo se a coluna existe, se existir adiciono a linha, senão existir adiciono a coluna... Acho que assim vai... estou testando... Abraços, Em 1 de junho de 2012 14:45, Fernando Oliveira fernandocor...@gmail.comescreveu: Se a segunda coluna tiver mais elementos inexistentes na 1a, esses não aparecem. Continuamos assim? ou voltamos do inicio? Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com Mas e então? O arquivo foi aceito? E tem mais uma coisa: desde a 1a tacada do Stanislaw, se os elementos de antes do ; forem diferentes do de depois, a tabela fica errada... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com Então façamos como arquivo: #!perl -ln $m{$`}{$'}=/;/;$,=$}{print X=@a=keys%m;print$_,@{$m{$_}}{@a}for@a Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Stanislaw Pusep creakt...@gmail.com Em bash, pelo menos, teria que rodar como: perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ABS() On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE$m{$`}{$'}=/;/;$,=$}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com bom... aqui no windows funfa... :P no windows eu to usando o no -e... Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org Ha! Alguém consegue usar $' na shell sem escapar? On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.com wrote: C:\ :( ABS() On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira fernandocor...@gmail.com wrote: C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt X;Joao;Pedro;Manoel Joao;;1; Pedro;;;1 Manoel;;1; Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 breno br...@rio.pm.org perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- -- Manoel Domingues Junior Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados é o primeiro passo para a comunidade. IBM - Prodigy Linux ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
#!perl -ln /;/;$c{$`}[$l{$'}//=$i++]=1;$,=$;}{print X=keys%l;print$_,@{$c{$_}}[values%l]for keys%c Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com #!perl -ln /;/;$,=$;$l{$'}//=$i++;$c{$`}[$l{$'}]=1}{print X=keys%l;print$_,@{$c{$_}}[0..$i]for keys%c Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 15:06, Fernando Oliveira fernandocor...@gmail.comescreveu: /;/;$,=amp;;$l{ }//=$i++;$c{[$l{}]=1}{print X=keys%l;print $_,@{$c{$_}}[values%l]for keys%c ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Tratamento de dados para CSV
$c{$`}[$l{$'}//=$i++]=/;/;$,=$;}{say X=keys%l;say$_,@{$c{$_}}[values%l]for keys%c =P Marco Lima braun.l...@gmail.com im:m...@jabber-br.org Register Linux User #483170 Slackware Linux, for the subgenius Aquele que pensa que é demasiado grande para fazer trabalhos pequenos é talvez demasiado pequeno para realizar grandes trabalhos. Ter acesso ao conhecimento é um dever de todos; transmitir conhecimento é um dever de quem tem. Na visão do hacker, o sentido da vida está em dedicar-se a uma paixão. Esta paixão é, na realidade, uma atividade significativa, inspiradora e prazerosa para o indivíduo, seja ela rotulada como trabalho ou como diversão. Ninguém é tão grande que não possa aprender, e nem tão pequeno que não possa ensinar Compartilhe o seu conhecimento. É uma maneira de alcançar a imortalidade 2012/6/1 Fernando Oliveira fernandocor...@gmail.com: Menor: #!perl -ln $c{$`}[$l{$'}//=$i++]=/;/;$,=$;}{print X=keys%l;print$_,@{$c{$_}}[values%l]for keys%c Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com #!perl -ln /;/;$c{$`}[$l{$'}//=$i++]=1;$,=$;}{print X=keys%l;print$_,@{$c{$_}}[values%l]for keys%c Just another Perl Hacker, Fernando (SmokeMachine) 2012/6/1 Fernando Oliveira fernandocor...@gmail.com #!perl -ln /;/;$,=$;$l{$'}//=$i++;$c{$`}[$l{$'}]=1}{print X=keys%l;print$_,@{$c{$_}}[0..$i]for keys%c Just another Perl Hacker, Fernando (SmokeMachine) Em 1 de junho de 2012 15:06, Fernando Oliveira fernandocor...@gmail.com escreveu: /;/;$,=amp;;$l{ }//=$i++;$c{[$l{}]=1}{print X=keys%l;print $_,@{$c{$_}}[values%l]for keys%c ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm