Hi, y’all. Running Linux Mint and I have the puzzle presented above.
From what I gather, I’m using rename (1p) which makes mention of Perl and in the man page it says it will also run as file-rename. I’m not sure if this is the right rename utility for the common argument
s/old_pattern/new_pattern/
but any time I try to run anything (including -n), I just get an angle bracket > and have to ctrl-c out.
I’d also need some details on how the wildcards work, which seems to be lacking in the documentation.
Edit: Instructions unclear. I have a bunch of episodes that are very wordy. I’m moving them onto DVD and truncated on my player the directory will look like:
Star Trek The Next Gene…
Star Trek The Next Gene…
Star Trek The Next Gene…
Star Trek The Next Gene…
Star Trek The Next Gene…
so I want to take (sample episode)
Star Trek The Next Generation Season 1 Episode 1 - Encounter at Far Point
and
-
Replace 'Star Trek The Next Generation Season ’ with ‘S0’
-
Replace 'Episode ’ with ‘E0’ or ‘E’ depending on digits
-
Keep episode title as is.
So it looks like
S01E01 - Encounter at Farpoint.mkv


This is the kinda small script I use Claude for. So yeh, it’s LLM generated. Downvote away.
But I am terrible at writing bash scripts!
#!/usr/bin/env bash # rename-episodes.sh — run inside the folder, or pass a directory as $1 shopt -s nullglob cd "${1:-.}" || exit 1 for f in *.mkv; do # Match: ... Season N ... Episode N - Title.mkv if [[ $f =~ Season\ ([0-9]+)\ Episode\ ([0-9]+)\ -\ (.+)\.mkv$ ]]; then season="${BASH_REMATCH[1]}" episode="${BASH_REMATCH[2]}" title="${BASH_REMATCH[3]}" # Zero-pad to two digits new=$(printf "S%02dE%02d - %s.mkv" "$season" "$episode" "$title") if [[ "$f" != "$new" ]]; then echo "mv: $f -> $new" # uncomment the next line to actually move the file # mv -n -- "$f" "$new" fi else echo "skip (no match): $f" fi doneI’ve commented out the
mvcommand so you can test/fiddle/play around with it without clobbering your files.Some notes from Claude:
Edit: I just realised that specifically
file-renameis mentioned, and looks like you are getting appropriate help in other threads.