E sobre isso?
for line in $(grep '^.*$' foo /dev/null) $(grep '^.*$' bar /dev/null)
do
if [[ ${line} =~ ^foo.*$ ]]
then
action1
else
action2
fi
done
Se você quiser remover o nome do arquivo principal em $line
, poderá adicionar line=$(<<<$line sed 's/^foo:\(.*\)$//')
e line=$(<<<$line sed 's/^bar:\(.*\)$//')
no corpo if / else.