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

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

Processar o arquivo linha por linha - Versão 2


From: Isamp
Subject: Processar o arquivo linha por linha - Versão 2
Date: Sat, 16 Jun 2007 16:21:13 -0300
User-agent: Thunderbird 2.0.0.4 (Windows/20070604)

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||address@hidden,A 5730|234|1|2008-10-24 15:50:33.230|Valdeni Floriano|51 33333||address@hidden|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, ema=address@hidden
Na segunda interação: tur=234, nom=Valdeni Floriano, ema=address@hidden


Obrigado desde já !



reply via email to

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