conversão de arquivo para .csv [RESOLVIDO]

1. conversão de arquivo para .csv [RESOLVIDO]

caio
caionarezzi

(usa CentOS)

Enviado em 05/07/2021 - 12:30h

Boa nova a todos, tenho um sistema que roda com firebird 3.0 e uso o isql para exporta dados dele, ate ai blza, mas preciso converter os dados exportado em arquivo .csv ou seja com separação com ' ; ' e não estou conseguindo achar uma formula exata que possa me ajuda vou deixa abaixo o arquivo que o ISQL exporta.


CODIGO COMPONENTE QUANTIDADE
============= ============= =======================
401114K BSB704 1.000000000000000
401114K 401114 1.000000000000000
60220D 201022 2.000000000000000
60220D 90263B 2.000000000000000
60510 501017 1.000000000000000
60510 90610 1.000000000000000
60512 501001 1.000000000000000
60512 90606 1.000000000000000
60513 501008 1.000000000000000
60513 90608 1.000000000000000
60310D 401009 2.000000000000000
20600629K 20600626 1.000000000000000
60433 301045 1.000000000000000
50100102K 50100102 1.000000000000000
90491B 90231 1.000000000000000
60552 501042 1.000000000000000
60408E 301016 1.000000000000000
60408E 1474 1.000000000000000
60408E 90017 1.000000000000000
60320C 401019 1.000000000000000

CODIGO COMPONENTE QUANTIDADE
============= ============= =======================
60320C 401105 1.000000000000000
60320C BSB0607 1.000000000000000
60320C 90465 1.000000000000000
60320CS 90465 1.000000000000000
60320CS 401019 1.000000000000000
60320CS 401105 1.000000000000000
60539 501021 1.000000000000000
60539 90602 1.000000000000000
60535CA 501032 2.000000000000000
60535CA 50100191DA 1.000000000000000
60634C 501069 1.000000000000000
60634C 50100144 1.000000000000000
60554LE 90616 1.000000000000000
60554LE 501048 1.000000000000000
60213D 201009 2.000000000000000
60213D 90263B 2.000000000000000
60213D 90432 2.000000000000000
20600629K 20600627 1.000000000000000
20600629K 20600628 1.000000000000000
60592CKD 50100143 2.000000000000000


É gerado desse forma a cima mas gostaria que saísse assim :



401114K;BSB704;1.000000000000000
401114K;401114;1.000000000000000
60220D;201022;2.000000000000000
60220D;90263B;2.000000000000000



Obrigado desde ja a todos


  


2. Re: conversão de arquivo para .csv [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 05/07/2021 - 20:56h


tr -s ' ' | tr ' ' ';' deve remover os espaços extras e substituir por ponto e virgula. Falta apenas tratar os cabeçalhos. Acho q dá p fazer c sed tb.


3. Re: conversão de arquivo para .csv [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 05/07/2021 - 21:36h


Não sei se entendi direito, mas v aí

sed '/^[0-9]/!d' arq.txt | sed 's/ * /;/g' > arq.csv 


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




4. Re: conversão de arquivo para .csv

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 06/07/2021 - 00:59h

Segue sugestão:
sed -i '/^[0-9]/s/ \+/;/g' texto.txt 

texto.txt é o exemplo que postou.
Como funciona:
As linhas que iniciam com números => '/^[0-9]/,
troque "espaços" por ";" => s/ \+/;/g

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



5. Re: conversão de arquivo para .csv [RESOLVIDO]

caio
caionarezzi

(usa CentOS)

Enviado em 06/07/2021 - 01:07h


Mauriciodez escreveu:


Não sei se entendi direito, mas v aí

sed '/^[0-9]/!d' arq.txt | sed 's/ * /;/g' > arq.csv 


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------



Puxa cara !!! funcionou, eu não entendi a primeira sessão do sed mas ao final eu apenas troquei o asterisco e funcionou para que preciso, cara, muito obrigado, ajudou demais !!!

sed '/^[0-9]/!d' arq.txt | sed 's/:/;/g' > arq.csv 






"Se tu o desejas, podes voar, só tens de confiar muito em ti." - Steve Jobs


6. Re: conversão de arquivo para .csv

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 06/07/2021 - 13:16h

caionarezzi escreveu:
Puxa cara !!! funcionou, eu não entendi a primeira sessão do sed mas ao final eu apenas troquei o asterisco e funcionou para que preciso, cara, muito obrigado, ajudou demais !!!
sed '/^[0-9]/!d' arq.txt | sed 's/:/;/g' > arq.csv 



/^[0-9] => começados com numeros de 0 a 9
/!d' => Deletar NÃO Linha
arq.txt => nome do arquivo

traduzinho ... deletar NÃO linhas começadas por números de 0 a 9 !!

NOTA: Não esqueça de Marcar o tópico como 'RESOLVIDO' e depois assinale uma "MELHOR RESPOSTA'

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts