diff options
Diffstat (limited to 'bin/fixnames')
| -rwxr-xr-x | bin/fixnames | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/bin/fixnames b/bin/fixnames new file mode 100755 index 0000000..dd1c5b3 --- /dev/null +++ b/bin/fixnames @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# Fix filenames in music library: no spaces or special chars. + +fixname() { echo "$1" | iconv -f utf8 -cs -t ascii//IGNORE; } + +# 1: fix directories +for f in *; do + [ -d "$f" ] || continue + n=$(fixname "$f") + [ "$f" = "$n" ] && continue + echo "$n" + mv "$f" "$n" +done + +for f in */*; do + [ -d "$f" ] || continue + n=$(fixname "$f") + [ "$f" = "$n" ] && continue + echo "$n" + mv "$f" "$n" +done + +# 2: fix files +for f in */*/*; do + [ -f "$f" ] || continue + n=$(fixname "$f") + [ "$f" = "$n" ] && continue + echo "$n" + mv "$f" "$n" +done |
