Olá colegas,

A algum tempo eu postei aqui na lista minha necessidade de processar um 
arquivo linha por linha, conforme exemplo abaixo:

No loop for abaixo, $1 é um arquivo com a seguinte estrutura:

5729|234|1|2008-10-24 15:50:07.903|Simone Barbosa|51 
33551||[EMAIL PROTECTED],A
5730|234|1|2008-10-24 15:50:33.230|Valdeni Floriano|51 
33333||[EMAIL PROTECTED]|A

for LINHA in `cat $1`; do
    tur=`echo $LINHA | /bin/cut -d"|" -f2`
    nom=`echo $LINHA | /bin/cut -d"|" -f5`
    ema=`echo $LINHA | /bin/cut -d"|" -f8`
    echo $nom - $tur - $ema
  
done



Peço desculpas pois dei a entender que meu objetivo era o resultado do 
comando "echo", portanto,
várias sugestões com sed e awk foram oferecidas.


Mas o caso não é esse. Me interessa na verdade a atribuição de variáveis 
dentro do loop.


O loop faz 8 interações, quando o que eu esperava eram 2 (2 linhas no 
arquivo)
Por que 8 ? Porque há 3 espaços em branco em cada linha, portanto, 4 
colunas separadas por " ".
Essa é que é a questão: como fazer o loop "for LINHA in `cat $1`" 
entender que a linha inteira deve ser processada ?

Na primeira interação: tur=234, nom=, ema=
Na segunda interação: tur=Simone, nom=, ema=

Quando eu queria que:

Na primeira interação: tur=234, nom=Simone Barbosa, [EMAIL PROTECTED]
Na segunda interação: tur=234, nom=Valdeni Floriano, [EMAIL PROTECTED]


Obrigado desde já !

Responder a