[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] For
From: |
jaugusto |
Subject: |
Re: [shell-script] For |
Date: |
Thu, 14 Feb 2002 19:07:51 -0300 |
Pessoal.
Apesar da solução com o while do Marcos Laureano ser muito boa (Garoto
esperto esse!!) provavelmente o problema com um ambiente ou outro não está
baseado em ser linux ou hp-ux. Eu tenho acesso a hp_ux e testei com
for i in $(cat arquivo.txt); do echo "|"$i"|"; done
e funcionou como desejado, processando uma linha de cada vez. Como vi que
outra pessoa também testou no linux e funcionou venho a supor que o
problema está na variável IFS (Internal Field Separator) utilizada pelo
comando for na separação de seus argumentos de processamento. Em um
ambiente deve possuir um valor e em outro ambiente outro valor.
Portanto sugiro, só por curiosidade, já que o seu problema já foi
resolvido, teste a seguinte seqüência de comandos. Observar que a linha com
o IFS=" realmente deve ficar em uma linha seguida de um linha com aspas
sozinha em outra linha, pois está se colocando o LF como único caractere
separador de campos para o for. A variável IFSANT é uma variável auxiliar
para somente recuperar o valor atual do IFS depois do processamento do for,
pois mexer com o IFS e não voltar ao seu valor anterior pode causar um
efeito colateral indesejado no restante do script.
IFSANT=$IFS
IFS="
"
for i in $(cat arquivo.txt); do echo "|"$i"|"; done
IFS=$IFSANT
Espero retorno para ver se essa solução resolve o seu problema também
[ ]' s a todos da lista ...
José Augusto Martins Nieviadonski
HSBC Bank Brasil S.A.
Treinamento de Informática
Enviado Por : Shell Script <address@hidden> - 14/02/02 15:25
Responder a shell-script
Para: address@hidden
cc: (cco: Jose NIEVIADONSKI/HBBR/HSBC)
Assunto: [shell-script] For
Ola pessoal,
estou com o seguinte problema:
tenho um arquivo (arq1), com o seguinte conteúdo:
======================================================
From ???@??? Mon Jan 15 09:57:46 2001
Return-Path: <address@hidden>
Delivered-To: address@hidden
Received: (qmail 95419 invoked from network); 13 Jan 2001 14:37:24 -0000
Received: from unknown (HELO servudor.teste.com.br) (200.201.202.203)
by ds.dominio.com.br with SMTP; 13 Jan 2001 14:37:24 -0000
Received: from cruzador ([192.168.8.31])
by servidor.teste.com.br (8.9.3/8.9.3) with SMTP id LAA23233
for <address@hidden>; Sat, 13 Jan 2001 11:32:20 -0200
Message-ID: <001301c07d57$36a53f80$address@hidden>
======================================================
Preciso trabalhar com uma linha de cada vez, em sequencia. Utilizando a
linha abaixo:
for i in $(cat arq1); do echo $i; done
a saida e gerada com uma palavra em cada linha.
From
???@???
Mon
Jan
15
09:57:46
2001
Return-Path:
<address@hidden>
Delivered-To:
dominio.com.br-serviçaddress@hidden
Received:
(qmail
95419
...
Se eu executo a linha abaixo:
for i in "$(cat arq1)"; do echo $i; done
ele lista tudo em apenas uma linha continua, sem quebras.
O mesmo ocorre se utilizar a sintaxe abaixo:
for i in "$(cat arq1)"; do echo "$i"; done
Alguem saberia como setar o "separador" que o for utiliza, ao inves de
quebrar com o espaço?
Obrigado!!
--------------------------------------
--------------------------------------
Marcelo Brunner
address@hidden
address@hidden
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
This message and any attachments are confidential to the ordinary user of
the e-mail address to which it was addressed and may also be privileged. If
you are not the adressee you may not copy, forward, disclose or use any
part of the message or its attachments and if you have received this
message in error, please notify the sender immediately by return e-mail and
delete it from your system.
Internet communications cannot be guaranteed to be secure or error-free as
information could be intercepted, corrupted, lost, arrive late or contain
viruses. The sender therefore does not accept liability for any errors or
omissions in the context of this message which arise as a result of
Internet transmission.