Faça um loop através de trechos de file_A, enviando-os como stdin para a mesma declaração do grep; ajuste 1000 à sua memória disponível:
nlines=$(wc -l < file_A)
chunk=1000
for((i=1; i < nlines; i += chunk))
do
sed -n $i,+$((chunk - 1))p file_A | grep -F -f - file_B
done > output