adicionar coluna e organizar arquivo por ordem crescente

1. adicionar coluna e organizar arquivo por ordem crescente

Xavier Neto
AsakuraHao

(usa Manjaro Linux)

Enviado em 09/04/2021 - 22:40h

Boa noite.
Estou trabalhando com a comparação de dois banco de dados que possuem basicamente os mesmos dados...
Tenho um arquivo de texto organizado da seguinte forma:

Casa001 Casa002 1
Eu003 Eu004 5
Nos005 Nos006 2


E outro que possui os mesmos dados na coluna 1 e 2 (embora em ordem diferente), mas a coluna 3 é diferente:


Nos005 Nos006 5.09
Eu003 Eu004 -2.34
Casa001 Casa002 -9.50


Preciso juntar os dois arquivos, criando um novo arquivo com 4 colunas:

Casa001 Casa002 1 -9.50
Nos005 Nos006 2 5.09
Eu003 Eu004 5 -2.34


Como está no exemplo, eu preciso pegar os dados do arquivo 1, reordenar para deixar as linhas organizadas em ordem crescente baseado na terceira coluna, depois colocar a terceira coluna do arquivo 2 na posição correta do arquivo 1 reorganizado...

como eu poderia fazer isso? Alguém poderia me ajudar?
Desde já agradeço


  


2. Re: adicionar coluna e organizar arquivo por ordem crescente

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/04/2021 - 02:16h


AsakuraHao escreveu:

Boa noite.
Estou trabalhando com a comparação de dois banco de dados que possuem basicamente os mesmos dados...
Tenho um arquivo de texto organizado da seguinte forma:

Casa001 Casa002 1
Eu003 Eu004 5
Nos005 Nos006 2


E outro que possui os mesmos dados na coluna 1 e 2 (embora em ordem diferente), mas a coluna 3 é diferente:


Nos005 Nos006 5.09
Eu003 Eu004 -2.34
Casa001 Casa002 -9.50


Preciso juntar os dois arquivos, criando um novo arquivo com 4 colunas:

Casa001 Casa002 1 -9.50
Nos005 Nos006 2 5.09
Eu003 Eu004 5 -2.34


Como está no exemplo, eu preciso pegar os dados do arquivo 1,
reordenar para deixar as linhas organizadas em ordem crescente baseado na terceira coluna,
depois colocar a terceira coluna do arquivo 2 na posição correta do arquivo 1 reorganizado...
como eu poderia fazer isso? Alguém poderia me ajudar?
Desde já agradeço

Boa noite.
Pode ser em awk?


______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




3. Re: adicionar coluna e organizar arquivo por ordem crescente

Xavier Neto
AsakuraHao

(usa Manjaro Linux)

Enviado em 10/04/2021 - 03:19h


opa...
Obrigado por responder!

Sim, pode ser awk


4. Re: adicionar coluna e organizar arquivo por ordem crescente

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/04/2021 - 16:45h


AsakuraHao escreveu:


opa...
Obrigado por responder!
Sim, pode ser awk

Boa tarde, segue:
cat paste.awk
{
if(FILENAME==ARGV[1]){a[$1]=$1;b[$1]=$2;c[$1]=$3;}
if( FILENAME==ARGV[2] )
if($1==a[$1]) print a[$1],b[$1],c[$1],$3
}

Modo de uso:
awk -f paste.awk arq01 arq02|sort -t' ' -k3
Casa001 Casa002 1 -9.50
Nos005 Nos006 2 5.09
Eu003 Eu004 5 -2.34


Para ordenar com o awk, faça:
cat ordena.awk
{ARRAY[$var] = $R;};

END {
asorti(ARRAY,SARRAY);
j = length(SARRAY);
for (i = 1; i <= j; i++) {
printf("%s\n",ARRAY[SARRAY[i]])
}
}

awk -f paste.awk arq01 arq02 >> arq12.txt
awk -v var=3 -f ordena.awk arq12.txt
Casa001 Casa002 1 -9.50
Nos005 Nos006 2 5.09
Eu003 Eu004 5 -2.34


É Isso....
Bem mais simples ordenar com o "sort"...


______________________________________________________________________
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.


______________________________________________________________________