Você pode usar awk
:
$ awk -F= '{a[$1]++; if(a[$1]==1){print}}' A.txt B.txt
A=x
B=y
C=z
D=q
E=r
Explicação
-
a[$1]++;
: salva o primeiro campo como uma chave na matriza
e incrementa o valor associado a essa chave em um. Isso significa que na primeira vez que uma chave é vista (por exemplo, o primeiroA=x
), o valor será 1, mas o segundo será 2. Isso nos permite contar elementos exclusivos. -
if(a[$1]==1){print}
: se o primeiro campo foi visto apenas uma vez, imprima.
Como estamos processando B.txt
após A.txt
, os valores em A.txt
são os que são mantidos.