Equal out bracket types
JavaScript (ES6), 79 bytes

s=&gt;s.replace(/./g,c=&gt;~(p=l.indexOf(c))?l[p&amp;4?--k&amp;3|4:k++&amp;3]:c,l='([{&lt;)]}&gt;',k=0)


Test cases



let f =

s=&gt;s.replace(/./g,c=&gt;~(p=l.indexOf(c))?l[p&amp;4?--k&amp;3|4:k++&amp;3]:c,l='([{&lt;)]}&gt;',k=0)

console.log(f("2#jd {¤&gt;."));
console.log(f("abcdef"));
console.log(f("(3×5+(4-1))"));
console.log(f("&lt;&lt;&lt;&gt;&gt;&lt;&lt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"));