#!/usr/bin/perl # Created: # 10-02-04 Sapan Bhatia use strict; my $rmask; my $fmask; my $smask; if ($#ARGV<1 || $#ARGV>2) { die "Usage: s.pl \n"; } if ($#ARGV==1) { $rmask=""; } else { $rmask=$ARGV[2]; } $fmask=$ARGV[0]; $smask=$ARGV[1]; recurse_dir($ENV{PWD}); exit(0); sub recurse_dir { my @list; my $dir=shift; my $count; opendir CWD,$dir; @list=readdir(CWD); closedir CWD; shift @list; shift @list; for (@list) { if (-d $dir."/$_") { recurse_dir($dir."/$_"); } else { if (-f "$dir/$_" && "$_"=~/$fmask/) { my @lines; open FIL,"+<$dir/$_"; @lines=; $count=0; map $count+=s/$smask/$rmask/g,@lines; print "Processing $dir/$_... $count substitutions made\n"; seek FIL,0,0; for (@lines) { print FIL $_; } close FIL; } } } }