Я использовал подоболочку для простого управления файловым дескриптором. (не нужно "exec 3> & -")
дескриптор файла, унаследованный дочерним процессом
Если вы использовали такой файловый дескриптор, то позиция файла перемещалась ниже при каждой операции чтения.
Параметр "e" выполняет строку пробела patteren как команду в sh
sh$ ( exec 3< file2;
sed -r '
/^Number of results: [0-9]+/ {
h
s#.*#read line <\&3; echo -n "$line"#e
G
}
' file1;
)