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: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Lista de Produtos
Date: Fri, 25 Nov 2005 14:00:35 -0200

isto vai criar arquivos no formato COD.txt , onde COD é o numero

$ cat lista.dat | sort | cut -d\; -f1,4 | awk -F';' '{print $2 >> $1".txt"
}'

isto paraleliza os resultados

$ cat COD.txt | tr  '\n' ','

isto forma uma lista não repedida de  COD;DESCRICAO;DETALHES

$ cat lista.dat | sort | cut -d\; -f1-3 | uniq

isto cria a lista paralela com os resultados de final de linha

$ for i in $(cat lista.dat | cut -d\; -f1 | uniq ) ; do cat ${i}.txt | tr
'\n' ','; echo "" ; done

agora vc só precisa de um paste

$ paste <(cat lista.dat | sort | cut -d\; -f1-3 | uniq) <(for i in $(cat
lista.dat | cut -d\; -f1 | uniq ) ; do echo -n ";" ;cat ${i}.txt | tr '\n'
','; echo "" ; done)

1;FARINHA;MAIS DETALHES ;1,2,3,5,
3;FEIJÃO;MAIS DETALHES  ;2,4,
7;ARROZ;MAIS DETALHES   ;3,5,6,

agora é só ajustar algumas coisas...

$ sed s/\,$//g"" <(paste -d '' <(cat lista.dat | sort | cut -d\; -f1-3 |
uniq) <(for i in $(cat lista.dat | cut -d\; -f1 | uniq ) ; do echo -n ";"
;cat ${i}.txt | tr '\n' ','; echo "" ; done))

1;FARINHA;MAIS DETALHES;1,2,3,5
3;FEIJÃO;MAIS DETALHES;2,4
7;ARROZ;MAIS DETALHES;3,5,6

VOILÁ !

O unico inconveniente é ter que criar tantos arquivos auxiliares, no caso
{1,3,7}.txt

Talvez eu tenha passado por cima de alguns conceitos, se o fiz é só
perguntar

ps: finalmente aprendi a usar o <(cmd) !!!!! To viciado !!!!

Em 25/11/05, Enderson Maia <address@hidden> escreveu:
>
>  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
> ---------------------------------------------------------------------
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> <http://br.rd.yahoo.com/SIG=12fib3tng/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1132939838/A=2950750/R=2/id=noscript/SIG=10tift5qr/*http://br.movies.yahoo.com/>
> ------------------------------
> *Links do Yahoo! Grupos*
>
>    - Para visitar o site do seu grupo na web, acesse:
>    http://br.groups.yahoo.com/group/shell-script/
>
>    - Para sair deste grupo, envie um e-mail para:
>    address@hidden<address@hidden?subject=Unsubscribe>
>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


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



reply via email to

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