Thanks!#not using strict and -w for this example only my $rd = int( rand(100000)) + 999999; my @files = qw( XYZ12345_X05_20110805_8999999_00001.TXT XYZ12345_X05_2 +0110805_9999999.TXT); #add dash between $3 and $4 to the .txt before processing them::: #pad $2 with 0s #replace the end of the file with a randon number if the filename ends + with _00001 foreach my $f(@files) { if($f=~/(^\w{3})(\d{5,7})(_\w{1})(\w{1,2}_)(\d{8}\_)(\d{7}_\d{5}\.\w +{3})/i) { (my $xrenamed = $f) =~s/(^\w{3})(\d{5,7})(_\w{1})(\w{1,2}_)(\d{8}\ +_)(\d{7}_\d{5}\.\w{3})/$1.sprintf("%07d",$2).$3."-".$4.$5.$rd.".txt"/ +ie; print "\n\n $xrenamed\n\n"; }else{ (my $xrenamed = $f) =~s/(^\w{3})(\d{5,7})(_\w{1})(\w{1,2}_)(\d{8 +}\_)(\d{7}_\.\w{3})/$1.sprintf("%07d",$2).$3."-".$4.$5.$6/ie; print "\n\n $xrenamed\n\n"; } }
In reply to Re^2: Filename change with regular expression
by Anonymous Monk
in thread Filename change with regular expression
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |