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

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

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


From: Gustavo Chaves
Subject: Re: [shell-script] Erro semantico ao ler arquivo txt
Date: 18 May 2005 17:04:50 -0300
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

>>>>> On Wed, 18 May 2005 16:37:48 -0300, Carlos Felicio <address@hidden> said:

  > 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

  > 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.

O resultado dos backticks (``) não vai ser quebrado nas linhas, mas em
todos os espaços.  Veja se isto resolve:

        while read link seta prod; do
            echo F
            echo "$link $seta $prod"
            echo VARLINK
            echo $link
            echo VARPROD
            echo $prod
        done <ReportRCS.txt

Gustavo.


reply via email to

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