in reply to rename files using regex.
Here it is, for what it's worth:
Brad#!/usr/bin/perl -s # bsb hacked version of /usr/bin/rename use strict; use vars qw($q $n $t); use Convert::Translit; # Quiet, do Nothing, Test $q=$q; $n=$n; $t=$t; my $trans = Convert::Translit->new('Latin1' => 'ascii'); if ($t) { $n=1; @ARGV = <DATA>; } if (!@ARGV) { print "reading filenames from STDIN\n" unless $q; @ARGV = <STDIN>; chop(@ARGV); } for (@ARGV) { my $was = $_; $_ = $trans->transliterate($_); $_=lc; s/&/ and /g; s/\+/ plus /g; s/'//g; y/()~/---/s; print if $t; s/(?:(\.)|(-)|[\W_])+/$1||$2||'_'/ge; s/^[._-]//; s/[._-]$//; die $@ if $@; if( $was eq $_ ) { } # ignore quietly elsif( -e $_ ) { warn "$was not renamed: $_ already exists\n +"; } elsif($n || rename($was,$_)) { print "$was renamed as $_\n" unless + $q; } else { warn "Can't rename $was $_: $!\n"; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: rename files using regex.
by parv (Parson) on Jul 24, 2003 at 18:38 UTC |