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

Responder a