#!/usr/bin/perl # A Perl script to rename all of the files in a given directory # that match a source pattern by a replacement pattern # Author: Stewart Weiss # # Usage: # renameall directory-name source-pattern replacement-pattern if ( @ARGV < 3 ) { $file = $0; $file =~ s/^.*\\//; die "Usage: $file directory source-pattern target-pattern\n"; } $dir = $ARGV[0]; $source = $ARGV[1]; $replace = $ARGV[2]; opendir(DIR, $dir) || die "Cannot open $dir\n"; @files = readdir(DIR); for $i ( @files ) { $oldname = $i; $i =~ s/$source/$replace/; rename "$dir\/$oldname", "$dir\/$i"; } closedir(DIR);