summaryrefslogtreecommitdiff
path: root/bin/fixnames
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2025-02-24 11:52:58 +0100
committerMarc Vertes <mvertes@free.fr>2025-02-24 11:52:58 +0100
commit17d348db1738a536319de62229c233e764766087 (patch)
tree19c57dfb03b05c9a814825d64da73ae253c19bbc /bin/fixnames
parent9921f42676ea8361ea3d14bc1c9c5e184dfe5e07 (diff)
add mp3 scripts
Diffstat (limited to 'bin/fixnames')
-rwxr-xr-xbin/fixnames31
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