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

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

Re: [shell-script] while não lê sem new_line


From: Denis S. Costa
Subject: Re: [shell-script] while não lê sem new_line
Date: Sat, 3 Oct 2009 04:57:02 -0700 (PDT)

Me enganei o for tambem não funcionou... ele escreve uma string com quebra de 
linhas e não linhas separadas. Assim:

exemplo tosco: 
cat $texto
oi1
oi2
oi17

for i in texto; do
  echo "$texto"
  echo "Thundercats"
done

oi1

oi2

oi17
Thundercats

Quando eu queria isso 
oi1
Thundercats


oi2
Thundercats


oi17

Thundercats

Muito obrigado pela tentativa...


Denis Silva Costa
Analista de Geoprocessamento

http://shellscript4all.blogspot.com

"A paz não brota em um jardim com câmera e sensores..."

--- Em sex, 2/10/09, Denis S. Costa <address@hidden> escreveu:

De: Denis S. Costa <address@hidden>
Assunto: Re: [shell-script] while não lê sem new_line
Para: address@hidden
Data: Sexta-feira, 2 de Outubro de 2009, 21:04






 




    
                  Bom desculpe a demora em responder...



A solução com o for funciona perfeitamente! !



a com while não! porque ele faz um loop a mais e gera uma linha em branco e 
como preciso processar as linha dá erro!!



mas muito orbigado pela dica!!!



Um grande abraço!!!



Denis Silva Costa

Analista de Geoprocessamento



http://shellscript4 all.blogspot. com



"A paz não brota em um jardim com câmera e sensores..."



--- Em seg, 21/9/09, Flavio Torres <fla_torres@yahoo. com.br> escreveu:



De: Flavio Torres <fla_torres@yahoo. com.br>

Assunto: Re: [shell-script] while não lê sem new_line

Para: shell-script@ yahoogrupos. com.br

Data: Segunda-feira, 21 de Setembro de 2009, 22:16



 



-----BEGIN PGP SIGNED MESSAGE-----



Hash: SHA1



Denis S. Costa wrote:



> desculpem a mensagem anterior sem assunto



>



> tenho um programa em shell com uma sintaxe parecida com essa:



>



>



>



> while read linha; do



>



>     echo "$linha"



>



>     echo ""



>



> done < texto.txt



>



>



>



> Bom, acontece que o texto que uso as vezes não tem quebra de linha na



ultima linha:



>



>



>



> oi, tudo bem? \n



>



> tudo e com você? \n



>



> bem...



>



>



>



> (as duas primeiras linha tem uma quebra de linha e a ultima não!)



>



>



>



> essa linha sem quebra de linha não entra no loop! não lida pelo



while!!! por que?



>



>



Da uma lida na estrutura de loop aqui:



http://asis. epfl.ch/GNU. SYS/bash- 1.14.7/features_ 1.html



Posto aqui duas formas para resolver, deve ter algumas mais que o



pessoal certamente irá postar.



Usando a estrutura do for, o IFS diz que o delimitador (split) é nada,



pode setar qualquer outra coisa diferente de espaço (faça o teste



removendo o IFS que você notará a diferença). Se você tivesse um



arquivo demilitado por ^, então poderia usar o IFS=^, isto faria o seu



read valer os campos passados, ex: read nome sobrenome, sendo que o



arquivo estaria assim: nome^sobrenome.



- --



IFS=""



for i in $(cat texto.txt);do



echo $i



done



- --



usando o ultil



- --



FLAG=false



until $FLAG;do



read || FLAG=true



echo $REPLY



done < texto.txt



- --



Como pode ter visto na estrutura de loop, o ultil trabalhará assim:



enquanto for falso, faça



leia || (ou) se nao ler nada (read non zero) então recebe true para



finalizar o loop



imprime REPLY (variável default quando nao se define nada no while)



end



Um abraço



- --



/*---------- --------- --------- --------- --------- -----*/



/*    *    Flavio Torres - Administrador de Sistemas*/



/*   /_\   */int y,z;main(x){ x=(x>0?-9: x);z=((z= (x+5)



/*  o. .o  */)>0?z:-z); printf(!x& &++y?"\n" :z?z>y%3+ y/



/*  ((Y))  */3?" ":x<-5?"/":" \\":y?"|" :"*");y-9? main(



/* ()) (() */++x):puts( "  _|_|_")&&puts( "  \\___/");}



/*  ()^()  A party animal isn't just for Christmas.*/



- ------------ --------- --------- ------



- ------------ --------- --------- --------- --------- --------- -



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: shell-script- unsubscribe@ yahoogrupos. com.br



- ------------ --------- --------- --------- --------- --------- -



Esta lista é moderada de acordo com o previsto em



http://www.listas- discussao. cjb.net



- ------------ --------- --------- --------- --------- --------- -



Servidor Newsgroup da lista: news.gmane.org



Grupo: gmane.org.user- groups.programmi ng.shell. brazil



Links do Yahoo! Grupos



-----BEGIN PGP SIGNATURE--- --



Version: GnuPG v1.4.8 (MingW32)



iEYEARECAAYFAkq4JWc ACgkQNRQApncg297 RBwCdGiV+ UQ+dmhfPzjWSg2Tb Z5Ya



6UQAn0yRXy50Efx9tWI TSTnMUxvZAeBv



=3i2v



-----END PGP SIGNATURE--- --



        

         

        

        



        



        

        



____________ _________ _________ _________ _________ _________ _

Veja quais são os assuntos do momento no Yahoo! +Buscados

http://br.maisbusca dos.yahoo. com



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




 

      

    
    
        
         
        
        








        


        
        


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

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



reply via email to

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