On 3/31/07, Danilo Gimenez Ramos <[EMAIL PROTECTED]> wrote: > Pessoal, eu queria fazer um script que lesse um arquivo que está em csv > e tem tres campos separados por ponto e virgula. > Separa o nome na variavel nome e o usuario na variavel usuario. > se eu faço no shell por exemplo: $ cat nomes.csv | cut -f2 -d';' > eu consigo os nome e se trocar o f2 por f3 eu pego os usuarios. > > Tentei fazer o seguinte script: > > #!/bin/bash > > LINHA='x' > > while ! [ "$LINHA" = '' ] > do > LINHA="`cat -n $1`" > NOME="`echo $LINHA|cut -f2 -d';'`" > echo "$NOME" > if [ "$LINHA" = '' ] > then > break > fi > done > > Só que tem dois problemas por enquanto: > um deles é que o loop fica infinito, ele não para a execução no break do > if e eu não to conseguindo atribuir na variavel NOME a saída de echo > $LINHA|cut -f2 -d';' > > aqui um exemplo do meu arquivo csv: > > 1;Camila Pacheco de Carvalho Almeida;t137563 > 2;Cristiane da S Moraes;t137610 > 3;Eliane Menezes Pereira;t137611 >
Vc pode usar uma construção do tipo: while read LINHA; do echo "$LINHA"; done < <(cut -f2 -d";" $1) -- Augusto Cezar Amaral da C Silva
