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