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

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

Re: [shell-script] "Group By" / Totalizando


From: Julio C. Neves
Subject: Re: [shell-script] "Group By" / Totalizando
Date: Sat, 4 Aug 2007 14:31:38 -0300

IFS=\;
for Prod in $(head -1 arq.csv)
do
    let i++
    echo $Prod $(tail +2 arq.csv | cut -f$i | paste -sd+ | bc)
done

Obs: Como os valores estão com vírgula decimal (e não ponto), é provável que
se vc colocar antes do echo um LANG=pt_BR (ou será PT_br?) funcione, caso
negativo, coloque entre o cut e o paste um | tr , \. para trocar as vírgulas
por pontos.

-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq
Em 04/08/07, Tiago Barcellos Peczenyj <address@hidden> escreveu:
>
>   podes usar o awk, veja esse exemplo:
>
> $ cat arquivo
> quantidade;produto
> 12;bolacha
> 30;melancia
> 40;bolacha
> 4;amora
>
> $ awk -F \; 'NR > 1{qtd[$2]+=$1} END{for(i in qtd) print i,qtd[i]}'
> arquivo
> amora 4
> bolacha 52
> melancia 30
>
> Agora é só adaptar ao seu problema!
>
> On 8/4/07, jacksonwilliambr <address@hidden<jackson.silva%40cpm.com.br>>
> wrote:
> >
> > Boa tarde,
> >
> > Já fiz algumas pesquisas pela net, mas não consegui achar algo que me
> > ajuda-se a resolver um problema, será que vocês podem me mostrar os
> > caminhos
> > das pedras?
> >
> > Tenho um arquivos csv, que está desta forma.
> >
> > COD_UNB_001;COD_UNB_002;COD_PROD
> > 5,1;2,3;888
> > 7,2;2,1;777
> >
> > Eu preciso fazer com que seja realizado uma varredura produto/unidade
> > (onde
> > o codigo da unidade está junto com o cabeçalho), fazendo tipo
> > um "group by",
> > totalizando-os produtos.
> >
> > Será que alguém poderia me dar uma luz.
> >
> > Obrigado
> >
> > Jackson William
> >
> >
> >
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>

-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


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



reply via email to

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