s{abc(\d+)\.html}{sprintf("abc%04d.html",$1)}ge;
if all the filenames are of the form abc\d+.html or is there a catch?
| [reply] [d/l] |
| [reply] |
Greetings, and thank you for your thoughtful replies.
Actually "abc" is a constant -- all the files in question are
prefaced with those same 3 characters.
So in an effort to be more concise;
I need all the files prefaced by abc, to be followed by 4 digits.
The files abc1000.html through abc9000.html, are already there.
Which leaves abc1.html through abc999.html.
I was able to rename all the files by cobbling up a script with the help of
find(1),basename(1),cp(1), and rm(1) via for loop. But those won't help me with
the references to those files within all the files themselves. :(
So, in summary; how on earth can I append a 0 to abc
on all the references to abc100.html - abc999.html? Appending 2, or three
digits to the other references, will have the same solution. So I chose to use
the "hundreds" list for a starting point.
Thanks again for your thoughtful responses.
#!/usr/bin/perl -Tw
use perl::always;
my $perl_version = "5.12.4";
print $perl_version;
| [reply] |
Greetings tye.
Thanks for taking the time to respond.
s{(?<=[a-z])([0-9]{1,3})(?=[.])}{
sprintf "%04d", $1
}ge;
Looks brilliant in it's simplicity. But my head is still in sed(1)
scripting mode. So I fear I am not yet following it. :(
I'm attempting to sort it out now. :)
Thanks again!
#!/usr/bin/perl -Tw
use perl::always;
my $perl_version = "5.12.4";
print $perl_version;
| [reply] [d/l] |