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


Tested this with perl-rename and it seems to work fine:
perl-rename -n 's/.* (\d{1,2}).* (\d{1,2})/sprintf "S%02dE%02d",$1,$2/e'*. represents any single character
‘*’ matches the previous character 1 or more times
'.* ’ matches any series of characters before a space
() encloses something you want to keep
\ is the escape character
d represents any number
{1,2} means the number will be 1 or 2 digits
In the sprintf, %02d is to format each number with 2 digits.
$1 and $2 pass the first and second values enclosed in parentheses from the first argument into the 2 d’s in the “S%02dE%02d” of the second argument.
This link has a better explanation of the /e modifier than I could give you xD
https://www.geeksforgeeks.org/perl/perl-e-modifier-in-regular-expression/
Cool! Thanks!
Is this standard PERL stuff? How I learn what all these things mean? One day I hope to write my own arguments.
No idea lol
I just wanted a rename utility and Arch didn’t have the GUI one I used on Mint so I gradually pieced some of this stuff together. If there’s one source online that lays it all out I haven’t found it yet!
If you’d like me to explain the one here I’ll do my best ;)
Edit: nvm, I edited the original comment to explain everything