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