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

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

Re: [shell-script] Processar o arquivo linha por linha - Versão 2


From: Flavio Junior
Subject: Re: [shell-script] Processar o arquivo linha por linha - Versão 2
Date: Sun, 17 Jun 2007 19:56:45 -0300

O loop faz mais interaçoes do que vc imaginava por que ele nao conta linhas,
ele conta campos, e campos sao coisas separadas pelo IFS..

Veja qeu tem exatamente 8 CAMPOS no seu arquivo:
> linuxuser@slave1:~$ cat arq
> 5729|234|1|2008-10-24 15:50:07.903|Simone Barbosa|51
> 33551|address@hidden <33551%7Ctbing%40xxx.com.br>|A
> 5730|234|1|2008-10-24 15:50:33.230|Valdeni Floriano|51
> 33333|address@hidden <33333%7Cnenhum%40nenhum.com.br>|A

Visto que um dos valores do IFS e o espaço em branco.

Pra fazer o que v deseja, faça com o while ou altere o IFS antes do for,
exemplos;

while IFS='|' read -r TURMA NOME MAIL; do
 echo -e "Turma: $TURMA\nNome: $NOME\nMAIL: $MAIL"
done < arq

Com o for:
OIFS=$IFS
IFS='|'
for VAR in $(cat arq); do echo $VAR; done
IFS=$OIFS # recuperando o valor do IFS original, senao zua tudo na sessao.

Veja que o for vai fica uma bosta, por que nao da pra atribuir varias
variaveis ao mesmo tempo, como no while..

Acho q isso te ajdua


Flavio do Carmo Junior

On 6/17/07, Isamp <address@hidden> wrote:
>
>   Desculpe ... eu não entendi ...
>
> Flavio Torres escreveu:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Isamp wrote:
> >
> >> Olá colegas,
> >>
> >> A algum tempo eu postei aqui na lista minha necessidade de processar um
> >> arquivo linha por linha, conforme exemplo abaixo:
> >>
> >>
> >
> > Oi,
> >
> > linuxuser@slave1:~$ cat arq
> > 5729|234|1|2008-10-24 15:50:07.903|Simone Barbosa|51
> > 33551|address@hidden <33551%7Ctbing%40xxx.com.br>|A
> > 5730|234|1|2008-10-24 15:50:33.230|Valdeni Floriano|51
> > 33333|address@hidden <33333%7Cnenhum%40nenhum.com.br>|A
> >
> >
> > linuxuser@slave1:~$ awk -F\| '{print
> > "tur="$2",","nome="$5",","email="$7}' arq
> > tur=234, nome=Simone Barbosa, 
> > email=address@hidden<email%3Dtbing%40xxx.com.br>
> > tur=234, nome=Valdeni Floriano, 
> > email=address@hidden<email%3Dnenhum%40nenhum.com.br>
> >
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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