Eu tenho 2 arquivos,
arquivo1 - >
abc=3
abc=3
dfg=6
ggg=7
arquivo2 - >
abc=3
dfg=4
sdf=9
Eu quero a saída em file3 como,
File2,File1,Result
abc=3,abc=3,Match
dfg=4,dfg=6,NoMatch
sdf=9,,NotPresent
,abc=3,Duplicate
Atualmente tenho um script,
grep -E 'abc|dfg|sdf' file1 >> file3
comm <( sort -n file2 ) <( sort -n file3 ) |awk -F$'\t' 'BEGIN { OFS="," } $3 { print $3, $3, "MATCH"; next } { print $1, $2, "NO MATCH" }' > final_result.txt
A saída parece
abc=3,abc=3,MATCH
,abc=3,NO MATCH
dfg=4,,NO MATCH
,dfg=6,NO MATCH
sdf=9,,NO MATCH
A saída exibe um espaço em branco se o valor no arquivo2 não corresponder ao valor no arquivo1. Por exemplo, a única diferença entre dfg = 4, NO MATCH e, dfg = 6, NO MATCH é que o valor mudou de 4 para 6. Eu gostaria que a saída fosse
dfg=4,dfg=6,NoMatch
em vez de
dfg=4,,NO MATCH
,dfg=6,NO MATCH
E também,
abc=3
aparece duas vezes, mas é exibido como
,abc=3,NO MATCH
Eu gostaria de tê-lo como,
abc=3,,Duplicate
Qualquer ajuda é muito apreciada.