audiobook scripts
This commit is contained in:
1 parent
83e6d7ee22
commit
05cb3b1b9f
2 files changed
+31
No files matched your search
@@ -0,0 +1 @@
|
||||
for file in *; do [ -f "$file" ] || continue; dir="${file%.*}"; mkdir -p "$dir"; mv -- "$file" "$dir/"; done
|
||||
@@ -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
|
||||
Reference in new issue
Block a user