[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á !
- Processar o arquivo linha por linha - Versão 2,
Isamp <=