Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

1. Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Paulo Ribeiro
paribe

(usa Ubuntu)

Enviado em 12/06/2020 - 11:33h

Bom dia , pessoal uma ajuda pois preciso fazer a transformação de linha para coluna

mais para cada linha da data que varia por horário vai ter que ter todos os produtos

conforme abaixo.

Alguém pode me ajudar.

abs

Origem

arquivo 1

data
01-01-2019 - 00:00:01
01-01-2019 - 00:00:02
01-01-2019 - 00:00:03
01-01-2019 - 00:00:04
01-01-2019 - 00:00:05
01-01-2019 - 00:00:06
01-01-2019 - 00:00:07
01-01-2019 - 00:00:08
01-01-2019 - 00:00:09
01-01-2019 - 00:00:10
01-01-2019 - 00:00:11
01-01-2019 - 00:00:12
01-01-2019 - 00:00:13
01-01-2019 - 00:00:14
01-01-2019 - 00:00:15
01-01-2019 - 00:00:16


arquivo 2

produto

item a
item b
item c
item d
item e

---------------------------------------

Destino

data_produto
01-01-2019 - 00:00:01 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:02 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:03 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:04 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:05 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:06 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:07 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:08 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:09 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:10 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:11 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:12 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:13 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:14 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:15 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:16 ;item a ; item b;item c; item d ; item e



  


2. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2020 - 16:10h


paribe escreveu:

Bom dia , pessoal uma ajuda pois preciso fazer a transformação de linha para coluna

mais para cada linha da data que varia por horário vai ter que ter todos os produtos

conforme abaixo.

Alguém pode me ajudar.

abs

Origem

arquivo 1

data
01-01-2019 - 00:00:01
01-01-2019 - 00:00:02
01-01-2019 - 00:00:03
01-01-2019 - 00:00:04
01-01-2019 - 00:00:05
01-01-2019 - 00:00:06
01-01-2019 - 00:00:07
01-01-2019 - 00:00:08
01-01-2019 - 00:00:09
01-01-2019 - 00:00:10
01-01-2019 - 00:00:11
01-01-2019 - 00:00:12
01-01-2019 - 00:00:13
01-01-2019 - 00:00:14
01-01-2019 - 00:00:15
01-01-2019 - 00:00:16


arquivo 2

produto

item a
item b
item c
item d
item e

---------------------------------------

Destino

data_produto
01-01-2019 - 00:00:01 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:02 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:03 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:04 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:05 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:06 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:07 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:08 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:09 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:10 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:11 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:12 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:13 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:14 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:15 ;item a ; item b;item c; item d ; item e
01-01-2019 - 00:00:16 ;item a ; item b;item c; item d ; item e

Boa tarde.
A questão consiste em:
Cada linha do arq data, deve conter todos produtos do arquivo "produtos", bem simples.....
Passo 1:
Transforme o arquivo produtos em uma linha, salvando em uma var.
Passo 2
Leia o arquivo datas linha a linha, (awk faz isso) printe o conteúdo da linha+a var gerada no passo 1.
Tente fazer....
OBS.: Em 11-06-2020 tem uma postagem minha, que com pouca alteração lhe atende....



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Paulo Ribeiro
paribe

(usa Ubuntu)

Enviado em 12/06/2020 - 16:34h

Obrigado pelo retorno.

Pode me ajudar qual seria o tópico e a comunidade dessa mensagem do dia 11.06.2020 , pois não achei !!!


4. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2020 - 17:17h


paribe escreveu:

Obrigado pelo retorno.

Pode me ajudar qual seria o tópico e a comunidade dessa mensagem do dia 11.06.2020 , pois não achei !!!

Segue o comando!
echo 'Item_'{A..G}|tr ' ' '\n' > produtos.txt # GEREI o arq produtos.txt!

awk -v prod=$(tr '\n' ';' < produtos.txt) '{print $1";"prod}' data.txt

01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2019;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;


Não ESQUEÇA de MARCAR a MELHOR RESPOSTA..... :)
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


5. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Paulo Ribeiro
paribe

(usa Ubuntu)

Enviado em 15/06/2020 - 04:27h

Obrigado pelo retorno.

Mais uma ajuda tem algum material ou site que possa começar a estudar awk.


abs


6. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/06/2020 - 19:30h


paribe escreveu:

Obrigado pelo retorno.

Mais uma ajuda tem algum material ou site que possa começar a estudar awk.
abs

https://pt-br.lmgtfy.com/?q=awk+command


______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


7. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Paulo Ribeiro
paribe

(usa Ubuntu)

Enviado em 17/06/2020 - 15:25h

Boa tarde ,

Uma ajuda pois não estou conseguindo , já li vários site mas não vi nada parecido para fazer , pois sou iniciante nos comandos awk.

Pela sua ajuda anterior.

já rodei o comando abaixo e deu certo , obrigado:

echo 'Item_'{A..G}|tr ' ' '\n' > produtos.txt # GEREI o arq produtos.txt!

awk -v prod=$(tr '\n' ';' < produtos.txt) '{print $1";"prod}' data.txt


Mas agora preciso juntar o resultado do arquivo datastamp.txt mas o arquivo de data.txt conforme abaixo:

arquivo datastamp.txt
==========

01-01-2020 - 00:01
01-01-2020 - 00:02
01-01-2020 - 00:03
01-01-2020 - 00:04
01-01-2020 - 00:05
01-01-2020 - 00:06

precisa agora colocar por linha no arquivo datastamp.txt cada linha que existe no arquivo data.txt onde ficaria assim ( ou gerar outro arquivo pode ser tb) :

01-01-2020 - 00:01 ;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:02 ;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:03 ;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:04;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:05;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:06;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;


Pode me ajudar.

Outra ajuda quando executei o comando abaixo apresentou o resultado

awk -v prod=$(tr '\n' ';' < produtos.txt) '{print $1";"prod}' data.txt
;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;

não deveria ser somente uma vez ficando assim acima apresentou mais duas vezes Item_A e só deveria ser uma vez:
;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G






8. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/06/2020 - 17:27h


paribe escreveu:

Boa tarde ,
Uma ajuda pois não estou conseguindo , já li vários site mas não vi nada parecido para fazer , pois sou iniciante nos comandos awk.
Pela sua ajuda anterior.

já rodei o comando abaixo e deu certo , obrigado:

echo 'Item_'{A..G}|tr ' ' '\n' > produtos.txt # GEREI o arq produtos.txt!

awk -v prod=$(tr '\n' ';' < produtos.txt) '{print $1";"prod}' data.txt


Mas agora preciso juntar o resultado do arquivo datastamp.txt mas o arquivo de data.txt conforme abaixo:

arquivo datastamp.txt
==========

01-01-2020 - 00:01
01-01-2020 - 00:02
01-01-2020 - 00:03
01-01-2020 - 00:04
01-01-2020 - 00:05
01-01-2020 - 00:06

precisa agora colocar por linha no arquivo datastamp.txt cada linha que existe no arquivo data.txt onde ficaria assim ( ou gerar outro arquivo pode ser tb) :

01-01-2020 - 00:01 ;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:02 ;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:03 ;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:04;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:05;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
01-01-2020 - 00:06;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
Pode me ajudar.

Outra ajuda quando executei o comando abaixo apresentou o resultado

awk -v prod=$(tr '\n' ';' < produtos.txt) '{print $1";"prod}' data.txt
;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;
;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G;

não deveria ser somente uma vez ficando assim acima apresentou mais duas vezes Item_A e só deveria ser uma vez:
;Item_A;Item_B;Item_C;Item_D;Item_E;Item_F;Item_G

Paribe, boa tarde!
Preste ATENÇÃO!
O comando:
echo 'Item_'{A..G}|tr ' ' '\n' > produtos.txt # GEREI o arq produtos.txt! 

É só um exemplo do Arquivo que usei para testes!!!!

Conforme sua 1ª postagem!
cat Arquivo_01
01-01-2019 - 00:00:01
01-01-2019 - 00:00:02
01-01-2019 - 00:00:03
01-01-2019 - 00:00:04
01-01-2019 - 00:00:05
01-01-2019 - 00:00:06
01-01-2019 - 00:00:07
01-01-2019 - 00:00:08
01-01-2019 - 00:00:09
01-01-2019 - 00:00:10
01-01-2019 - 00:00:11
01-01-2019 - 00:00:12
01-01-2019 - 00:00:13
01-01-2019 - 00:00:14
01-01-2019 - 00:00:15
01-01-2019 - 00:00:16

cat Arquivo_02
item A
item B
item C
item D
item E
item F

COMANDO:
awk -v prod="$(tr '\n' ';' < Arquivo_02)" '{print $0";"prod}' Arquivo_01
01-01-2019 - 00:00:01;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:02;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:03;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:04;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:05;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:06;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:07;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:08;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:09;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:10;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:11;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:12;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:13;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:14;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:15;item A;item B;item C;item D;item E;item F
01-01-2019 - 00:00:16 ;item A;item B;item C;item D;item E;item F

Também pode definir os PRODUTOS, da seguinte forma:
awk -v prod="Compasso;Régua;Caderno;Caneta;Lápis;Borracha" '{print $0";"prod}' Arquivo_01
01-01-2019 - 00:00:01;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:02;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:03;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:04;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:05;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:06;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:07;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:08;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:09;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:10;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:11;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:12;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:13;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:14;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:15;Compasso;Régua;Caderno;Caneta;Lápis;Borracha
01-01-2019 - 00:00:16;Compasso;Régua;Caderno;Caneta;Lápis;Borracha

O comando awk, está lendo cada linha do arquivo_01,
Mostrando a linha inteira => "print $0" e a var definida.
$0=> Todos campos
$1 => Campo 1
F ou FS => Separador de CAMPOS
Separador PADRÃO é o ESPAÇO
NR => Numero do Registro....
Em: man awk, tem isso e muito mais . . . Rsrsrsrsr
São 437 linhas, (sem as linhas vazias!!!)


Não ESQUEÇA de MARCAR a MELHOR RESPOSTA..... :)

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


9. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Paulo Ribeiro
paribe

(usa Ubuntu)

Enviado em 17/06/2020 - 18:09h

Obrigado.


10. Re: Transformar dois arquivos em um arquivo criando colunas novas [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/06/2020 - 17:02h


Por NADA!
Precisando......
É só consultar o google, o help, o man, etc.....

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts