Ler arquivo CSV e tratar linhas [RESOLVIDO]

1. Ler arquivo CSV e tratar linhas [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/06/2015 - 22:46h

Boa noite, quero fazer uma organização em uma coleção de dados a partir de um arquivo .CSV cuja entrada é esta :

Primeira coluna é tipo texto e as 6 colunas demais sao do tipo float, como exemplo a linha a seguir:
img/0007.jpg , 152.6 , 488 , 252.4 , 99.20 , 13.31 , 458.7
e as demais linhas seguem mesmo padrão.

Arquivo de saida deveria ser:

Nome do arquivo : 0007.pts
Conteudo :
152.6 488
252.4 99.20
13.31 458.7

Ou seja, cada linha do arquivo gera seu respectivo arquivo "NomedaColuna1.pts" e como conteudo os pontos flutuantes organizados em pares.

Estou pesquisando aqui no fórum algumas implementações de leitura de arquivo,mas não estou conseguindo tratar a linha e exportar de forma organizada, se alguem tiver alguma ideia será de grande ajuda



  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 19/06/2015 - 01:26h

Ola!

Simples mas funciona:

#!/bin/bash

lista=arquivo.csv

while read dados
do
arq=`echo $dados | awk -F"/" '{print$2}' |awk -F"." '{print$1}'`
echo $dados | awk -F"," '{printf$2 $3 "\n" $4 $5 "\n"$6 $7 "\n"}' > $arq.pts
done < $lista

echo -e "\n\n\n Processo finalizado :) \n\n\n"


Nao esqueca de dar um chmod +x nome_do_script antes de executar.

espero ter ajudado.

abs,

Tony

3. Re: Ler arquivo CSV e tratar linhas

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 19/06/2015 - 09:41h

Olá,
Voce pode tentar assim:


awk -F "," '{ print $1 "\n" $2 "\t" $3 "\n" $4 "\t" $5 "\n" $6 "\t" $7 "\n" }' file.csv







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts