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

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

RES: [shell-script] Erro semantico ao ler arquivo txt


From: Rodolfo Villanova
Subject: RES: [shell-script] Erro semantico ao ler arquivo txt
Date: Wed, 18 May 2005 18:22:48 -0300

Tem razão!
É no que dá responder uma dúvida sem testar!
Realmente, num comando for, o shell considera elemento finalizador de cada
volta do loop qualquer caracter que seja considerado um separador, como
espaço em banco ou tabulador, p/ex.
-------
Rodolfo

> -----Mensagem original-----
> De: address@hidden
> [mailto:address@hidden]Em nome de Emerson Domingues
> Souto
> Enviada em: quarta-feira, 18 de maio de 2005 18:01
> Para: address@hidden
> Assunto: Re: [shell-script] Erro semantico ao ler arquivo txt
>
>
>
> Mas é claro q o defeito está no for
> use o script do Gustavo enviado a pouco, ou simplesmente substitua o for
> por:
>
> cat ReportRCS.txt | while read f
>
>
> ----- Original Message -----
> From: "Rodolfo Villanova" <address@hidden>
> To: <address@hidden>
> Sent: Wednesday, May 18, 2005 5:02 PM
> Subject: RES: [shell-script] Erro semantico ao ler arquivo txt
>
>
> > Carlos,
> >
> >
> > O incidente com certeza não está na linha do for, e sim no
> separador entre
> > os campos, que o gawk não está tratando conforme o esperado.
> >
> > Experimente troca as linhas de atribuição do VarLink e do VarProd pelas
> > linhas abaixo e veja o que acontece:
> >
> > varLink=`echo "$f" | tr -s " " | cut -d" " -f1
> > varProd=`echo "$f" | tr -s " " | cut -d" " -f3
> >
> > Verifique se antes e após a seta (->) existe caracter tabulação
> ('\t') ao
> > invés de espaço em branco (' ').
> >
> > Boa sorte.
> >
> > []'s
> > -----------------------
> > Rodolfo Gross Villanova
> >
> > > -----Mensagem original-----
> > > De: address@hidden
> > > [mailto:address@hidden]Em nome de Carlos Felicio
> > > Enviada em: quarta-feira, 18 de maio de 2005 16:38
> > > Para: address@hidden
> > > Assunto: [shell-script] Erro semantico ao ler arquivo txt
> > >
> > >
> > > Pessoal,
> > >
> > > Estou tentando executar um loop abaixo, mas o script nao esta
> > > respondendo da forma esperada.
> > >
> > > #!/usr/bin/sh
> > > for f in `cat ReportRCS.txt`
> > > do
> > >  varLink=`echo "$f" | gawk '{print $1}'`
> > >  varProd=`echo "$f" | gawk '{print $3}'`
> > >  echo "F"
> > >  echo "$f"
> > >  echo "VARLINK"
> > >  echo "$varLink"
> > >  echo "VARPROD"
> > >  echo "$varProd"
> > > done
> > >
> > > O arquivo ReportRCS.txt esta no seguinte formato:
> > >
> > > /blabla/RCS   -> /yoink/RCS
> > >
> > > E me retorna assim:
> > >
> > > F
> > > /blabla/RCS
> > > VARLINK
> > > /blabla/RCS
> > > VARPROD
> > >
> > > F
> > > ->
> > > VARLINK
> > > ->
> > > VARPROD
> > >
> > > F
> > > /yoink/RCS
> > > VARLINK
> > > /yoink/RCS
> > > VARPROD
> > >
> > > Quando na verdade eu queria que saisse assim:
> > >
> > > F
> > > /blabla/RCS   -> /yoink/RCS
> > > VARLINK
> > > /blabla/RCS
> > > VARPROD
> > > /yoink/RCS
> > >
> > > O defeito pra mim eh claro,  por algum motivo os espacos
> estao quebrando
> > > a leitura e considerando o espaco como uma nova linha. Eu pensei em
> > > tirar os espacos com tr e depois arrumar de novo na variavel, mas ia
> > > ficar meio na gambiarra. Qual o comando correto no lugar do for f in
> > > `cat ReportRCS.txt` para que o script leia o txt da forma que
> eu quero?
> > > Eu tentei com for f in $(cat ReportRCS.txt) mas o sh retornou dizendo
> > > syntax error `$' unexpected. Estou usando Solaris 8.
> > >
> > > Grato,
> > > Carlos
> > >
> > >
> > > ---------------------------------------------------------------------
> > > 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
> >
> >
> >
> >
> >
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> 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]