On Wed, Apr 10, 2002 at 10:11:28AM -0400, Craig Sharp wrote:
> Allison,
> 
> Try this script.  I found it out on the net.  My need was to rename a
> set of files but I don't see any reason that this couldn't rename a
> single file.
> 
> #!/usr/local/bin/perl
> #
> # Usage: rename perlexpr [files]
> 
> ($regexp = shift @ARGV) || die "Usage:  rename perlexpr [filenames]\n";
> 
> if (!@ARGV) {
>    @ARGV = <STDIN>;
>    chomp(@ARGV);
> }
> 
> 
> foreach $_ (@ARGV) {
>    $old_name = $_;
>    eval $regexp;
>    die $@ if $@;
>    rename($old_name, $_) unless $old_name eq $_;
> }
> 
> exit(0);

This looks like a bad copy of Larry Wall's rename script, which used to
be distributed with Perl.  It's even lost its attribution.  Here's the
real thing:

#!/usr/local/bin/perl -w

# rename program by Larry Wall
$op = shift or die "Usage: rename expr [files]\n";
chomp(@ARGV = <STDIN>) unless @ARGV;
for (@ARGV) {
    $was = $_;
    eval $op;
    die $@ if $@;
    rename($was,$_) unless $was eq $_;
}

-- 
Paul Johnson - [EMAIL PROTECTED]
http://www.pjcj.net

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to