audiobook scripts

This commit is contained in:
Lucas Vivohost committed 2026-09-14 12:43:38 +02:00
1 parent 83e6d7ee22
commit 05cb3b1b9f
2 files changed
+31

No files matched your search

+1
View File
@@ -0,0 +1 @@
for file in *; do [ -f "$file" ] || continue; dir="${file%.*}"; mkdir -p "$dir"; mv -- "$file" "$dir/"; done
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
find . -type d | while read -r dir; do
name=$(basename "$dir")
# Match Disc1, Disc01, disc02, CD1, cd01, etc.
if [[ $name =~ (^|[[:space:]._-])([Dd]isc|[Cc][Dd])0*([0-9]+)$ ]]; then
cdnum="${BASH_REMATCH[3]}"
parent=$(dirname "$dir")
parentname=$(basename "$parent")
find "$dir" -maxdepth 1 -type f | while read -r file; do
filename=$(basename "$file")
ext="${filename##*.}"
base="${filename%.*}"
# If there's only one file in the folder, omit the original basename.
if [[ $(find "$dir" -maxdepth 1 -type f | wc -l) -eq 1 ]]; then
newname="CD${cdnum}.${ext}"
else
newname="CD${cdnum}.${base}.${ext}"
fi
echo "$file" "$parent/$newname"
cp "$file" "$parent/$newname"
done
else
echo "$name"
fi
done