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

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

Re: [shell-script] Lista de Produtos


From: Enderson Maia
Subject: Re: [shell-script] Lista de Produtos
Date: Fri, 25 Nov 2005 17:32:10 -0300

Preferi usar a solução do awq, mas tive alguns problemas até descobrir
que era o formato
do arquivo.

O arquivo que gero, vem de uma consulta SQL e fica na rede

$ file arquivo.txt
produtos.txt: ASCII text, with CRLF line terminators

Daí eu fiz um copiar colar com o mouse, dentro do vim, daí o arquivo
passou a ter

$ file arquivo.txt
arquivo.txt: ASCII text

Como posso alterar o script awq para suportar isso ?



Em 25/11/05, Humberto Pereira<address@hidden> escreveu:
> Ola,
>         para esses casos, awk eh o seu melhor amigo
>
>          awk -F';' ' {
>                 detalhes[$1]=$1 ";" $2 ";" $3;
>                 if(lojas[$1])
>                         lojas[$1]=lojas[$1] "," $4;
>                 else
>                         lojas[$1]=$4;
>         }
>         END {
>                 for ( item in detalhes )
>                         print detalhes[item] ";" lojas[item]
>         }' a.txt
>
> [begnini 0 coke tmp]$ cat a.txt
> 1;FARINHA;MAIS DETALHES;1
> 1;FARINHA;MAIS DETALHES;3
> 1;FARINHA;MAIS DETALHES;5
> 1;FARINHA;MAIS DETALHES;2
> 3;FEIJÃO;MAIS DETALHES;2
> 3;FEIJÃO;MAIS DETALHES;4
> 7;ARROZ;MAIS DETALHES;5
> 7;ARROZ;MAIS DETALHES;3
> 7;ARROZ;MAIS DETALHES;6
> [begnini 0 coke tmp]$
>
>
> []s
> Humberto Pereira
>
> Enderson Maia wrote:
> > Olá, tenho uma lista de produtos que quero ajustar, consegui chegar
> > até um ponto, mas não saio daê.
> >
> > Tenho uma listagem de produtos com
> >
> > COD;DESCRICAO;DETALHES;LOJA
> >
> > onde o ultimo campo é a loja ontem tem um saldo do produto no estoque.
> >
> > Exemplo:
> >
> > -- INICIO
> > 1;FARINHA;MAIS DETALHES;1
> > 1;FARINHA;MAIS DETALHES;3
> > 1;FARINHA;MAIS DETALHES;5
> > 1;FARINHA;MAIS DETALHES;2
> > 3;FEIJÃO;MAIS DETALHES;2
> > 3;FEIJÃO;MAIS DETALHES;4
> > 7;ARROZ;MAIS DETALHES;5
> > 7;ARROZ;MAIS DETALHES;3
> > 7;ARROZ;MAIS DETALHES;6
> > -- FIM
> >
> >
> > quero transformar o arquivo ACIMA no arquivo ABAIXO:
> >
> > -- INICIO
> > 1;FARINHA;MAIS DETALHES;1,3,5,2
> > 3;FEIJÃO;MAIS DETALHES;2,4
> > 7;ARROZ;MAIS DETALHES;5,3,6
> > -- FIM
> >
> > Ou seja, para não repetir tudo, eu simplesmente transformo o ultimo campos
> > nas lojas onde tem o produto, separado por vírgulas.
> >
> > Em minhas tentativas, consegui isolar um arquivo somente com os
> > produtos sem repetição
> > e sem a loja.
> >
> > $ cat arquivo | cut -d";" -f 1-3 | uniq
> > 1;FARINHA;MAIS DETALHES
> > 3;FEIJÃO;MAIS DETALHES
> > 7;ARROZ;MAIS DETALHES
> >
> > não usei o sort, pois os produtos já estão juntos, e coloquei num
> > arquivo produtos
> >
> > $ cat arquivo | cut -d";" -f 1,4
> > 1;1
> > 1;3
> > 1;5
> > 1;2
> > 3;2
> > 3;4
> > 7;5
> > 7;3
> > 7;6
> >
> >
> > Agora como juntar as duas coisas ? pra gerar o que e quero, que é isso
> > (REPETINDO)
> >
> > -- INICIO
> > 1;FARINHA;MAIS DETALHES;1,3,5,2
> > 3;FEIJÃO;MAIS DETALHES;2,4
> > 7;ARROZ;MAIS DETALHES;5,3,6
> > -- FIM
> >
> > Espero estar indo no caminho certo, mas não consegui passar daê.
> >
> > Sem mais,
> >
> > --
> > --
> > Enderson Maia
> >
> > ICQ: 8817986
> > MSN: endersonmaia[arroba]gmail[ponto]com
> > Linux User: 286130
> > =============================
> >
> >
> > ---------------------------------------------------------------------
> > 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: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> 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: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


--
--
Enderson Maia

ICQ: 8817986
MSN: endersonmaia[arroba]gmail[ponto]com
Linux User: 286130
=============================


reply via email to

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