I like the idea from
choroba, but I would perhaps do it a bit differently. The OP doesn't specify what to do if the rename cannot happen. I would just "die" in that case with an error message. I would only process .mp4 files that match the pattern, but again that is up to the OP to decide how to handle an .mp4 file that doesn't match the pattern.
use strict;
use warnings;
foreach my $file ('Jane Doe & John Doe - 124 - How to Invest.mp4',
'Jane Smith & John Smith - 100 - Stocks.mp4',
'Jane Black & John Black - 90 - Bonds.mp4',
'Jane Black & John Black - 120 - Bonds2Invest.mp4',
'Jane Black & John Black - 123 - Bonds 2 Invest.mp4'
+,
)
{
if ( (my $num) = $file =~ / (\d+) - [\w ]+.mp4$/ )
{
#rename $file, "[Books] $num.mp4" or die "Cannot rename $file to
+ $num.mp4 - probable cause: duplicate number: $!";
print "$num.mp4\n";
}
}
__END__
124.mp4
100.mp4
90.mp4
120.mp4
123.mp4
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.