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