All pastes #591385 Raw Edit

puff

public text v1 · immutable
#591385 ·published 2007-06-27 05:21 UTC
rendered paste body
#! /usr/bin/perl -w
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
	if 0; #$running_under_some_shell
use File::Find ();
# for the convenience of &wanted calls, including -eval statements:
use vars qw/*name *dir *prune/;
*name   = *File::Find::name;
*dir    = *File::Find::dir;
*prune  = *File::Find::prune;
my $target = "foo" ;
my $replacement = "bar" ;
my $startdir = "./" ;
# overwrite =0 only displays the operations it WOULD do
# set overwrite=1 to actually execute the changes
my $overwrite = 0 ;
print "Starting in directory \"$startdir\" and overwriting is \"$overwrite\"\n" ;
# Traverse desired filesystems
File::Find::find({wanted => \&wanted}, $startdir);
exit;
sub wanted {
	my $filename = $_ ;
# This was for debugging purposes, so I could watch it iterate through the files.
#	print "Filename is: $filename\n" ;  
	if ($filename =~ m/$target/) {
		$newfilename = $filename ;
		$newfilename =~ s/$target/$replacement/ ;
		print "Renaming:  $filename\n" ;
		print "           $newfilename\n" ;
		if ($overwrite) {
			rename($filename, $newfilename) ;
		} 
	}
}