Converter arquivo de BD em linhas para colunas [RESOLVIDO]

1. Converter arquivo de BD em linhas para colunas [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 06/01/2012 - 14:11h

Então... Eu de novo!! rs

Eu tenho um arquivo texto que preciso importar para um banco de dados. Hoje o arquivo está arrumado em linha de acordo com as informações desejadas para a tabela do banco de dados, mas eu preciso converter essa informação em colunas (basicamente fazer uma tabela transposta) separadas por espaço. Segue abaixo um exemplo:

Tabela Inicial (sem as aspas):
"MSC MSCRJ01
Par1 456
Par2 485
Par3 865
Par13 854"

Tabela desejada (sem aspas):
"MSC Par1 Par2 Par3 Par13
MSCRJ01 456 485 865 854"

Já tenho um loop para ler a tabela inicial (insere a data de hj no final de cada linha do arquivo):

cat ArquivoInicial.txt | while read line
do
echo "$line `date +%d/%m/%Y`" >> ArquivoFinal.txt
done

O problema é que não estou conseguindo bolar como fazer para ler $line e copiar o primeiro termo na primeira linha e o segundo termo na segunda linha da coluna e a partir daí, fazer o loop para colocar a informação no final da linha do arquivo final.

Alguém tem alguma sugestão??

Obs.: O que eu estava tentando fazer era através do `cut -d" " -f1 $line`, mas não consigo apontar o cut para uma variável ao invés de um arquivo.


  


2. Re: Converter arquivo de BD em linhas para colunas [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 06/01/2012 - 17:18h

Tem bastante jeito de fazer isso ein ... gosto bastante do AWK ... então:


#!/bin/bash

arquivo_entrada="teste"
arquivo_saida="teste.tmp"

#------------------------------------------------------
cols=`awk ' NR == 2{ print NF }' $arquivo_entrada`
nr_col=0
while [ "$nr_col" -lt "$cols" ]
do
nr_col=`expr $nr_col + 1`
data=`date +%d/%m/%Y`
awk -v nr_col="$nr_col" -v data="$data" '{ print $nr_col } END { print data }' $arquivo_entrada | xargs >> $arquivo_saida
done
#----------------------------------------------fim-----





3. Re: Converter arquivo de BD em linhas para colunas [RESOLVIDO]

Diego Tavares
diegoneto

(usa Outra)

Enviado em 09/01/2012 - 10:08h

Show!!!

Funcionou certinho!!

Ainda coloquei um IF p/colocar na primeira linha o campo "DATA" ao invés da data em si. Funcionou certinho!! Muito obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts