Я предлагаю использовать два массива, которые вы будете повторять одновременно:
f_files=(dir1/fileA dir1/fileB dir1/fileC) # or shorter : =(dir1/file{A,B,C})
g_files=(dir2/fileX dir2/fileY dir2/fileZ) # or shorter : =(dir2/file{X,Y,Z})
for ((i=0; i<${#f_files[@]}; i++)); do
paste ${f_file[$i]} ${g_files[$i]} > tmp
awk '{print $1+$2}' tmp > output$i
rm tmp
done
Я основал количество итераций на длине массива f_files
, но учтите, что он начинается с 0, поскольку массивы индексируются с 0, что влияет на имена выходных файлов. Очевидно, это можно исправить с помощью небольшой арифметики, если это будет необходимо.
Я предлагаю также удалить промежуточный файл tmp
(paste ${f_file[$i]} ${g_files[$i]} | awk ...
) или, по крайней мере, удалить его только после окончания цикла, поскольку >
перезаписывает содержимое файла.