Перебрать фрагменты файла _A, отправив их как стандартный ввод в тот же оператор grep; настроить 1000 на доступную память:
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
Не видя самого скрипта, я бы предложил изучить одну большую возможность, заключающуюся в том, что сеть не полностью выровнена к моменту выполнения вашего скрипта. Причина, по которой он выполняется вручную, заключается в том, что вы выполнили его после того, как сеть полностью запущена.
У меня есть репозиторий git, от которого зависит мое собственное приложение pi camera для загрузки изображений и видео, которые оно захватывает, в облако. Мой скрипт просто продолжает зацикливать git clone
до тех пор, пока он либо не завершится успешно, либо, по крайней мере, не даст мне понять, что он не удался :
until git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
do
echo
echo "Download of Dropbox-Uploader repo failed. Retrying"
echo "CTRL +C to exit if failing endlessly"
echo
done