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: Fri, 2 Oct 2009 17:04:50 -0700 (PDT)

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://shellscript4all.blogspot.com

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

--- Em seg, 21/9/09, Flavio Torres <address@hidden> escreveu:

De: Flavio Torres <address@hidden>
Assunto: Re: [shell-script] while não lê sem new_line
Para: address@hidden
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.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]