<===

ProNotes

2025-12-03 10:00:37
rename youtube labels recursive catalogs

$ cat ren-yt-recurse.sh 
find . -type d -exec bash -c '
  shopt -s nullglob
  cd "$1" || exit 1
  declare -A seen
  for f in *.mp3 *.m4a; do
    old=$f
    base=${f%.*}
    ext=.${f##*.}

    new=$base
    new=${new//\([^)]*\)/ }
    new=${new//\[[^]]*\]/ }
    new=${new//  / }
    new=${new## }
    new=${new%% }

    [[ "$new" == "$base" ]] && continue

    target="$new$ext"
    while [[ -e "$target" || -n "${seen[$target]:-}" ]]; do
      i=${i:-1}
      target="${new}_$i$ext"
      ((i++))
    done
    seen["$target"]=1

    echo "$(pwd)/$old -> $(pwd)/$target"
    mv -- "$old" "$target"
  done
' _ {} \;
← Previous Next →
Back to list