in reply to renaming files

I love Perl immensely, but Bash can handle this perfectly. Just do for i in *.TMB; do `mv $i `something with cut, or awk or sed to trim off the "MB"` .JPG`; done

Replies are listed 'Best First'.
Re: Sorry, but bash can do it!
by repson (Chaplain) on Jan 04, 2001 at 06:43 UTC
    I think DOS can do one better though my memory of syntax may be incorrect.
    C:\> move *.tmb *t.jpg
    Note: this is not suggesting that DOS is better than bash in anyway, I firmly believe that DOS (and windows too, though that isn't under discussion) sucks. :)
      You might want to check Rename files safely which gives the same behavior with some perlish extras.
Re: Sorry, but bash can do it!
by runrig (Abbot) on Jan 04, 2001 at 12:14 UTC
    Why even use cut, awk, or sed to trim when you could just use the shell parameter replacement "${i%TMB}JPG". But to keep it perl:
    while (<*.TMB>) { my $new = $_; substr($new, -3) = "JPG"; warn "$new already exists", next if -e $new; rename $_, $new or warn "Error renaming $_: $!"; }
    Update: I just saw only the above node when I answered, I now see that except for my first comment on the shell solution, I've posted practically the same code already posted higher up (great minds think alike I suppose) :0)