Sim, awk é uma opção adequada:
awk 'NF{t=$1;gsub("["$2"]","",t);print$0,t}' input
No caso de o segundo campo poder conter caracteres com significado especial em classes de caracteres de expressões regulares, estes devem ser escapados. Resolvendo que em POSIX awk é demorado, então eu posto a alternativa GNU awk apenas:
gawk 'NF{print$0,gensub("["gensub(/([\[\]^-])/,"\\\1","g",$2)"]","","g",$1)}' input