shell脚本问题:如何将一个文件的内容跟另一个文件指定的内容逐行匹配后替换

cat file1.txt
aa bb
ccc dd
k pppp

cat file2.txt
1
2
3

将文件1中的空格替换成文件2的数字输出
aa1bb
ccc2dd
k3pppp

求指引,自己一直在学习sed,但是这个超出了目前的理解范围。

Below works:
awk 'NR==FNR{a[NR]=$0;next}{sub(/\ /,a[FNR])}1' file2 file1

自己写的脚本, 供参考

自动替换/dir_to_replace里面全部与*.tpl匹配的文件, 替换规则从EOF开始, 到EOF结束

 #!/bin/bash
#自动替换/dir_to_replace里面全部与*.tpl匹配的文件, 替换规则从EOF开始, 到EOF结束

if [ $# -ne 1 ]; then
  echo "usage: $0 /dir_to_replace"
  exit 0
fi

while read -r pattern replacement; do   
    echo "$pattern --> $replacement"
    find $1 -type f -name "*.tpl" -exec sed -i "s=$pattern=$replacement=g" {} \;
done <<EOF
aa bb
ccc ddd
k pppp
EOF