[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Erro semantico ao ler arquivo txt
From: |
Emerson Domingues Souto |
Subject: |
Re: [shell-script] Erro semantico ao ler arquivo txt |
Date: |
Wed, 18 May 2005 18:01:20 -0300 |
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
>
>
>
>
>
>
>
>