/[cvs]/joko/Scripts/replace/replace.pl
ViewVC logotype

Contents of /joko/Scripts/replace/replace.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Thu Oct 17 04:45:45 2002 UTC (21 years, 7 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
+ new

1 #!/usr/bin/perl
2
3 ## -----------------------------------------------------------------------------------------
4 ## $Id$
5 ## -----------------------------------------------------------------------------------------
6 ## $Log$
7 ##
8 ## -----------------------------------------------------------------------------------------
9
10 use strict;
11 use warnings;
12
13 use Carp;
14 use File::Find;
15 use Getopt::Long;
16
17 my $basedir;
18 my $pattern_substitution;
19 my $pattern_filename;
20 my $verbose;
21 my $dryrun;
22
23 GetOptions(
24 'basedir=s' => \$basedir,
25 'file-pattern=s' => \$pattern_substitution,
26 'substitution-pattern=s' => \$pattern_filename,
27 'dry-run=s' => \$dryrun,
28 #'interactive=s' => \$verbose,
29 'verbose=s' => \$verbose,
30 #'report=s' => \$verbose,
31 'usage' => \&usage,
32 'help' => \&usage,
33 );
34
35 sub usage {
36 print <<EOU;
37
38 replace.pl -- replaces contents in files by applying regular expression
39
40 --substitution-pattern: give regex-pattern for substitution (e.g. "s/world/earth/")
41 --file-pattern:
42 --basedir
43
44 EOU
45
46 }
47
48
49 my $pattern = shift;
50 croak("no pattern!") unless $pattern;
51
52 my $path = shift;
53 croak("no path!") unless $path;
54
55 my $pattern_file = '/CVS/Root';
56
57 exit;
58
59 sub replaceInFile {
60 my $filename = shift;
61 my $filename_bak = $filename . ".bak";
62 open(RH, $filename);
63 open(WH, '>' . $filename_bak);
64 while(<RH>) {
65 eval($pattern);
66 #print $_, "\n";
67 print WH $_;
68 }
69 close(WH);
70 close(RH);
71
72 unlink $filename;
73 rename $filename_bak, $filename;
74
75 }
76
77 sub wanted {
78 if ($File::Find::name =~ m/$pattern_file$/) {
79 print $File::Find::name, "\n";
80 replaceInFile($File::Find::name);
81 #exit;
82 }
83 }
84
85 sub main {
86 find(\&wanted, $path);
87 }
88
89 main();

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed