sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #84277
Re: Fjern en tekst fra en masse filnavne?
Christoffer Kjølbæk wrote:
> Hvordan laver man lige et script der klare den? Jeg har kigget i man mv,
> men der skal jo nok noget uden om mv til at klare det?
Følgende er et perlscript jeg engang skrev for at rename filer,
med perl regulære udtryk, engang vil jeg måske tage mig sammen
til at adderer de nødvendige errorchecks for at undgå fatale fejl.
Du burde kunne løse dit problem med
Rename 's/_Bettina// ; s/_/ /g' *.ogg
men check lige på et par filer først!
#!/usr/bin/perl
if ($#ARGV == -1)
{
die <<EOL;
Syntax: Rename 'perl expression' <list of files>
Files are only renamed if the target files does not exist.
Examples:
Rename 'tr/[A-Z]/[a-z]/' * lowercase filenames
Rename 's/jpe\$/jpg/' *.jpe renames file extensions
Rename 's/^/xxx/' * prepending filenames with xxx
EOL
}
my $regex=shift @ARGV;
foreach (@ARGV){ Rename($_); }
sub Rename
{
my ($file)=(@_);
my $str="\$_=\"$file\"; $regex ; return \$_";
$file2=eval($str);
if ($file ne $file2 && !(-e $file2) )
#different source and target and target does not exist.
{
print "$file -> $file2\n";
rename $file, $file2;
}
}
--
Mvh. Carsten Svaneborg
http://gauss.ffii.org
Follow ups
References