So as not to overload the regex since the exclusion list can be 200+ strong, we first generate the sed code using the exclusion list file and apply that generated code on the data input.
GNU sed
sed -e '
1i\
s/dank/\\
/g
h;s:[\&/]:\\&:g
x;s/dank/\
/g
s:[][^$\/.*]:\\&:g
s/\
/\\
/g;G
s:\
:/:;s:.*:s/&/g:
$a\
s/\\
/MONK/g
' excludes.txt | sed -f - file
* * *
Output:-
xdankine reMONKus
dankzwd
MONKe MONKbe
testMONK
* * *
Proof of concept:-
* First off, turn all danks to literal newlines, a char guaranteed not to be found.
* Then turn a line in exclude list like `nudankip` to as given below and likewise for all lines in exclude list.
* `s/nu\
ip/nudankip/g`
* The complexity is due to the fact that we need to escape the exclude list fir the rhs and lhs of a sed s/// expression.