[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
=============================