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