Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: I have a folder which is having 1200 files,all the file names are have maximum of 8 character length.I need to remove last character from each of the filnames and prefix it with character "A"

by perladdict (Chaplain)
on Feb 20, 2013 at 20:38 UTC ( [id://1019844]=note: print w/replies, xml ) Need Help??


in reply to Re: I have a folder which is having 1200 files,all the file names are have maximum of 8 character length.I need to remove last character from each of the filnames and prefix it with character "A"
in thread I have a folder which is having 1200 files,all the file names are have maximum of 8 character length.I need to remove last character from each of the filnames and prefix it with character "A"

Thanks MidLifeXis, As per your inputs i have tried to implement this,Below is the code i tried it,i am able to succeed to rename all tons of files in my directory.
#!/usr/bin/perl $dir = "C:\\Users\\user\\Desktop\\test"; opendir DIR, $dir or die "error: cannot open directory \"$dir\" $!"; @files = sort grep (!/^\.$|^\.\.$/, readdir(DIR)); closedir (DIR); foreach $fl(@files) { if($fl =~ m/\.doc/) { @a = split(/\.doc/,$fl); foreach $len(@a) { $z = length $len; if($len <= $z) { @x = substr($len,0,7); foreach $mod(@x) { $mod = "A".$mod.".doc"; rename $fl,$mod; } } } } }
  • Comment on Re^2: I have a folder which is having 1200 files,all the file names are have maximum of 8 character length.I need to remove last character from each of the filnames and prefix it with character "A"
  • Download Code

Replies are listed 'Best First'.
Re^3: I have a folder which is having 1200 files,all the file names are have maximum of 8 character length.I need to remove last character from each of the filnames and prefix it with character "A"
by nvivek (Vicar) on Feb 21, 2013 at 07:58 UTC

    Grep pattern used for getting files can be modified to reduce the for loop iteration as you're going to rename only file names which are less than or equal to 8 characters with .doc extension.

    @files = sort grep /^.{1,8}\.doc$/, readdir(DIR);

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1019844]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2024-04-16 05:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found