Eu tenho dois arquivos de entrada.
Arquivo1:
s2/80 20 . A T 86 F=5;U=4
s2/20 10 . G T 90 F=5;U=4
s2/90 60 . C G 30 F=5;U=4
Arquivo2:
s2/90 60 . G G 97 F=5;U=4
s2/80 20 . A A 20 F=5;U=4
s2/15 11 . A A 22 F=5;U=4
s2/90 21 . C C 82 F=5;U=4
s2/20 10 . G . 99 F=5;U=4
s2/80 10 . T G 11 F=5;U=4
s2/90 60 . G T 55 F=5;U=4
Resultado esperado:
s2/80 20 . A T 86 F=5;U=4 s2/80 20 . A A 20 F=5;U=4
s2/20 10 . G T 90 F=5;U=4 s2/20 10 . G . 99 F=5;U=4
Lógica:
Eu quero todas as linhas de arquivo1 e arquivo2 concatenadas no arquivo de saída:
Condições:
Se a Coluna 1, 2, 4 do Arquivo1 e Arquivo2 corresponder exatamente e se a Coluna 5 do Arquivo2 tiver um ponto, ou seja, "." ou se corresponder exatamente à Coluna 4 do arquivo2.
Código:
Eu tentei usar o script:
BEGIN{}
FNR==NR{
k=$1" "$2
a[k]=$4" "$5
b[k]=$0
c[k]=$4
d[k]=$5
next
}
{ k=$1" "$2
lc=c[k]
ld=d[k]
# file1 file2
if ((k in a) && ($4==$5) && (lc==$4)) print b[k]" "$0
}
Mas recebo uma saída de:
s2/80 20 . A T 86 F=5;U=4 s2/80 20 . A A 20 F=5;U=4
Considerando que minha saída deve ser:
s2/80 20 . A T 86 F=5;U=4 s2/80 20 . A A 20 F=5;U=4
s2/20 10 . G T 90 F=5;U=4 s2/20 10 . G . 99 F=5;U=4
Eu apreciaria sua ajuda.
Obrigado.