for fname in "$@"; do
- newname=$(echo "$fname" | sed -e "
+ newname=$(echo "$fname" | sed -e "
s/[‘“’”‘“’”″′«»\`\"]/'/g
s/ *: */ - /g
s/[–—]/-/g
s/№/N/g
")
- if [ "$fname" \!= "$newname" ]; then
- echo "$fname"
- echo "$newname"
- mv -- "$fname" "$newname"
- echo
- fi
+ newname="$(unicode_norm_nfd.py "$newname")"
+ if [ "$fname" \!= "$newname" ]; then
+ echo "$fname"
+ echo "$newname"
+ mv -- "$fname" "$newname"
+ echo
+ fi
done
--- /dev/null
+#! /usr/bin/env python3
+# https://stackoverflow.com/a/518232/7976758
+
+import sys
+import unicodedata
+
+
+def strip_accents(s):
+ return ''.join(c for c in unicodedata.normalize('NFD', s)
+ if unicodedata.category(c) != 'Mn')
+
+
+def latin1_to_ascii(uinput):
+ if isinstance(uinput, bytes):
+ uinput = uinput.decode(sys.getfilesystemencoding())
+ return strip_accents(uinput)
+
+
+if __name__ == '__main__':
+ if len(sys.argv) == 1:
+ sys.exit('Usage: %s name\n' % sys.argv[0])
+ for name in sys.argv[1:]:
+ print(latin1_to_ascii(name))