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

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

Re: RES: RES: [shell-script] queimando a cuca!!!


From: lferreir1
Subject: Re: RES: RES: [shell-script] queimando a cuca!!!
Date: Wed, 22 Sep 2004 19:14:53 -0000
User-agent: eGroups-EW/0.82

Sim Júlio, eu ví e processei o seu script, porém o resultado não foi 
o esperado, pois existem linhas duplicadas na saida. Mesmo vendo a 
sua lógica, não conseguí tirar esta duplicação.
Ver abaixo:
lferreir >cat numeros
01 02
03 04
05 06
07 08
lferreir >./prg

lferreir >cat saida
01 02 03 04 # certo 
01 02 05 06 # certo 
01 02 07 08 # certo 
03 04 03 04 # errado ( pegou a linha 2 com ela mesma )
03 04 05 06 # certo
03 04 07 08 # certo
05 06 03 04 # errado ( deveria ser a linha 3 com a linha 4 )
05 06 05 06 # errado ( pegou a linha 3 com ela mesma )
05 06 07 08 # certo ( neste exemplo terminaria aqui, penultima linha 
com a última )
07 08 03 04 # errado
07 08 05 06 # errado
07 08 07 08 # errado

Conseguí explicar ou complicar?
Luiz!

--- Em address@hidden, Julio Cezar Neves - 
DATAPREVRJ <julio.neves@p...> escreveu
> Aê Luiz,
> é só vc procurar na lista, que logo após a minha resposta, vi que o 
que fiz
> não era o que vc queria e na mesma hora mandei a solução correta.
> 
> Prompt> cat prg
> > saida  # para "esvaziar" o arq saida
> cont=2
> while read linha1
> do
>     while read linha2
>     do
>         echo "$linha1 $linha2" >> saida
>     done < <(tail +$cont teste)
>     let ++cont
> done < teste
> Prompt> cat > teste
> 1 5
> 8 10
> 14 20
> 80 90
> Prompt> ./prg
> Prompt> cat saida
> 1 5 8 10
> 1 5 14 20
> 1 5 80 90
> 8 10 14 20
> 8 10 80 90
> 14 20 80 90
> 
> Aqui vai a cópia do e-mail que te mandei às 12:00h de 17/09
> 
> Desculpe Luiz,
> 
> não havia entendido o problema e mandei a resposta errada. 
> 
> Acho que vc queria o seguinte:
> 
> > saida
> cont=2
> while read linha1
> do
>     while read linha2
>     do
>         echo "$linha1 $linha2" >> saida
>     done < <(tail +$cont teste)
>     let ++cont
> done < teste
> 
> As explicações do outro email que passei são válidas para este.
> 
> [ ]s,
> Julio Cezar Neves
> - Gerente do Programa de Software Livre -
> Tel:+55 21 2528-7070 / +55 21 8112-9988
> Fax: +55 21 2528-7646
> mailto:julio.neves@p...
> 
> 
> | -----Mensagem original-----
> | De: lferreir1 [mailto:lferreir@e...]
> | Enviada em: quarta-feira, 22 de setembro de 2004 15:28
> | Para: address@hidden
> | Assunto: Re: RES: [shell-script] queimando a cuca!!!
> | 
> | 
> | 
> | Ae Júlio,
> | Voltando contigo, ainda não seria este o resultado que eu quero.
> | Quero o seguinte:
> | cat numeros
> | 1 5
> | 8 10
> | 14 20
> | 80 90
> | 
> | Quero gerar um arquivo com o seguinte resultado:
> | cat saida
> | 1 5 8 10
> | 1 5 14 20
> | 1 5 80 90
> | 8 10 14 20
> | 8 10 80 90 
> | 14 20 80 90
> | 
> | A saída que o nosso colaborador Thobias é exatamente o que eu 
quero, 
> | porém o sed que ele forneceu não vai nem a pau no meu S.O.
> | Estava vendo o seu script, e acho que mais um pouco vc consegue 
> | resolver pra mim, por que eu.....
> | Aproveitando, estava vendo nas minhas apostilas ( uma porrada que 
> | fico printando e guardando ) achei um sobre o SED, do Aurélio.
> | Muito legal pra quem quer destrinchar o que o Thobias mostrou, só 
que 
> | não estou conseguindo entrar no site que está na apostila.
> | Aurélio, fale onde está a sua apostila sobre sed-HOWTO
> | 
> | Luiz
> | 
> | 
> | 
> | --- Em address@hidden, Julio Cezar Neves - 
> | DATAPREVRJ <julio.neves@p...> escreveu
> | > Aê pessoal, manda solução em sed e awk. Acho que ficam melhores.
> | > 
> | > read Reg1 < numeros
> | > while read Reg2
> | > do
> | >     echo "$Reg1 $Reg2" >> combinado
> | >     Reg1="$Reg2"
> | > done < <(tail +2 numeros)
> | > 
> | > Na última linha a sintaxe <(tail +2 numeros) é para criar um 
> | arquivo do tipo
> | > named pipe temporário (/dev/fd/63) para servir como entrada do 
> | done. Eu dei
> | > um tail +2 pq o 1o registro eu havia lido fora do loop.
> | > 
> | > Veja o teste:
> | > $ seq 10 > numeros
> | > $ prog
> | > $ cat combinado
> | > 1 2
> | > 2 3
> | > 3 4
> | > 4 5
> | > 5 6
> | > 6 7
> | > 7 8
> | > 8 9
> | > 9 10
> | > $ mv combinado numeros
> | > $ prog
> | > $ cat combinado
> | > 1 2 2 3
> | > 2 3 3 4
> | > 3 4 4 5
> | > 4 5 5 6
> | > 5 6 6 7
> | > 6 7 7 8
> | > 7 8 8 9
> | > 8 9 9 10
> | > 
> | > Era isso?
> | > 
> | > [ ]s,
> | > Julio Cezar Neves
> | > Tel:+55 21 2528-7070 / +55 21 8112-9988
> | > Fax: +55 21 2528-7646
> | > mailto:julio.neves@p...
> | > echo 
> | 
34307180195193995785843441489462450726966798683294575682968973834P | 
> | dc
> | > 
> | > 
> | > | -----Mensagem original-----
> | > | De: lferreir1 [mailto:lferreir@e...]
> | > | Enviada em: sexta-feira, 17 de setembro de 2004 10:57
> | > | Para: address@hidden
> | > | Assunto: [shell-script] queimando a cuca!!!
> | > | 
> | > | 
> | > | 
> | > | Bom dia;
> | > | 
> | > | Tenho o seguinte arquivo
> | > | 
> | > | cat teste
> | > | a b
> | > | c d
> | > | e f
> | > | 
> | > | Quero uma saida com o seguinte resultado:
> | > | a b c d
> | > | a b e f
> | > | c d e f
> | > | 
> | > | Ou seja: Quero combinar a linha um do arquivo teste com a 
linha 
> | dois, 
> | > | linha um com a 3, e a 2 com a 3.
> | > | 
> | > | Adianto que a quantidade de linhas do arquivo teste pode 
variar.
> | > | 
> | > | Agradeço qualquer ajuda.
> | > | 
> | > | Até!
> | > | Luiz
> | > | 
> | > | 
> | > | 
> | > | --------------------------------------------------------------
----
> | ---
> | > | 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


reply via email to

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