$cmdline = shift @ARGV; foreach (@ARGV) { $cmdline = $cmdline . " " . $_; } $old = $cmdline; $cmdline =~ s/\b-i\b//; if ($cmdline ne $old) { $old = $cmdline; $interactive = 1; } else { $interactive = 0; } $cmdline =~ s/\b--force\b//; if ($cmdline ne $old) { $old = $cmdline; $force = 1; } else { $force = 0; } $cmdline =~ s/\b-q\b//; if ($cmdline ne $old) { $old = $cmdline; $quiet = 1; } else { $quiet = 0; } if ( $interactive = 1) { $quiet = 0; } print "\"$cmdline\"\n"; $search = $ARGV[0]; #search pattern $replace = $ARGV[1]; #replacement pattern $dir = $ARGV[2]; #directory opendir DH, $dir || die "error opening directory, $dir:\n$!\n"; @filez = readdir(DH); chdir $dir || die "error changing to directory, $dir:\n$!\n"; foreach (@filez) { if (-f $_) { $old = $_; s/($search)/$replace/; if ($quiet != 1) { print "$old $_"; } if ($old ne $_) { if ($force == 1) { if ($interactive == 1) { print " y/n? "; chomp($y = ); if ($y =~ /^[yY]/) { rename $old, $_; } } else { rename $old, $_; print "\n"; } } } else { print "\n"; } } }