Eu assumo que você não quer apenas assumir que ambos existem. Isso só imprimirá as linhas se elas existirem.
for file1 in *_foo.ext; do
file2="${file1%foo.ext}bar.ext"
if [[ -e "$file2" ]]; then
printf '%s\t%s\n' "$file1" "$file2"
fi
done
Amostra:
$ tee {1,2,3}_foo.ext {1,3,4}_bar.ext </dev/null >/dev/null
$ ./script
1_foo.ext 1_bar.ext
3_foo.ext 3_bar.ext