Používám program detox, nejde to asi podle libovolného regexpu, ale třeba by ti to stačilo.
Jen mezery jde vyřešit pomocí find . | while read f; do mv "$f" "`echo "$f" | sed -re "s/../../g"`"; done, pro divočejší znaky (třeba newlines) bych už nepoužil shell ale napsal něco třeba v Pythonu.