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á !