[tpm] Renaming files

Chris Jones cj at cr-jay.ca
Wed Sep 16 18:14:26 PDT 2009


Thank you.  That was exactly the kind of optimization I was looking for.


At 07:16 PM 9/16/2009, you wrote:
>If you're going to assign $_ to $oldname, why not do it straight off 
>the bat? I believe in always naming variables, anyway. Just because 
>some commands will fill in $_ automatically doesn't mean it's the 
>best way to do things.
>
>for my $oldname ( @fileList ) { ....
>
>Then you can copy the old name to the new name and re-work it in one step.
>
>my ( $newname = $oldname ) =~ s/.....
>
>or if you really don't like that, keep the steps separate:
>
>my $newname = $oldname;
>$newname =~ s/...
>
>If you only want field '10' of stats, why capture the whole array?
>
>my $info = ( stats $oldname )[10]
>
>Your date formatting does not provide the underscores your 
>specification says you want:
>
>$date = time2str '%y_%m_%d', $info[10];
>
>
>
>Most importantly, the search-and-replace is wrong. There are no 
>quotes in the name. There are four digits not three. You aren't 
>capturing the xurrent name to reuse in the replace portion. Worst of 
>all, this isn';t a search-and-replace problem at all
>
>my $newname = $date . '_' . $oldname
>
>
>
>On Wed, Sep 16, 2009 at 6:37 PM, Chris Jones 
><<mailto:cj at cr-jay.ca>cj at cr-jay.ca> wrote:
>I want to go to the DOS prompt and rename all the files in that 
>directory with a date prefix if there is no prefix there:
>
>dsc_0023.jpg becomes 16_09_09_dsc_0023.jpg.
>
>I am sure the following can be improved on:
>#!/usr/bin/perl
>
>use strict;
>use warnings;
>use Date::Format;
>
>my $dir = '.\';
>my $date;
>
>my @info;
># Time in seconds since epoch
># atime = info[8]
># mtime = info[9]
># ctime = info[10]
>
># Convert epoch timestamp to YYYYMMDD
>my $created;
>
>my @fileList = glob "${dir}???_????.jpg*";
>
>foreach (@fileList) {
>    next if -d;
>    @info = stat($_) || die "Error $!";
>    $date = time2str('%Y%m%d', $info[10]);
>    my $oldname = $_;
>    s/"???_???.jpg"/"$date_???_???.jpg"/;     ##### <===
>    rename $oldname, $_  or
>        $_ = $oldname,
>        warn $_, ' not renamed: ', $!;
>}
>
>
>
>Chris Jones
>14 Oneida Avenue
>Toronto, ON M5J 2E3.
>Tel.  416-203-7465
>Fax. 416-946-1005
>
>
>_______________________________________________
>toronto-pm mailing list
><mailto:toronto-pm at pm.org>toronto-pm at pm.org
>http://mail.pm.org/mailman/listinfo/toronto-pm
>


Chris Jones
14 Oneida Avenue
Toronto, ON M5J 2E3.
Tel.  416-203-7465
Fax. 416-946-1005

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/toronto-pm/attachments/20090916/a106184e/attachment.html>


More information about the toronto-pm mailing list