NAME
File::Searcher::Interactive -- Searches for files and performs search/replacements on matching files, uses terminal to make the searches interactive.
SYNOPSIS
use File::Searcher::Interactive;
my $search = File::Searcher->new('*.cgi');
$search->add_expression(name=>'street', search=>'1234 Easy St.', replace=>'456 Hard Way', options=>'i');
$search->add_expression(name=>'department', search=>'(Dept\.|Department)(\s+)(\d+)', replace=>'$1$2$3', options=>'im');
$search->add_expression(name=>'place', search=>'Portland, OR(.*?)97212', replace=>'Vicksburg, MI${1}49097', options=>'is');
$search->interactive;
# $search->start; SEE File::Searcher
@files_matched = $search->files_matched;
print "Files Matched\n";
print "\t" . join("\n\t", @files_matched) . "\n";
print "Total Files:\t" . $search->file_cnt . "\n";
print "Directories:\t" . $search->dir_cnt . "\n";
my @files_replaced = $search->expression('street')->files_replaced;my @files_replaced = $search->expression($expression)->files_replaced;
my %matches = $search->expression('street')->matches;
my %replacements = $search->expression('street')->replacements;
DESCRIPTION
File::Searcher::Interactive
is a sub-class of File::Searcher
which allows for the traversing of a directory tree for files matching a Perl regular expression. When a match is found, the statistics are stored and if the file is a text file a series of searches and replacements can be performed. File::Searcher::Interactive
uses the terminal to prompt the user for interactive replacements.
USAGE
/path/to/file.txt
some pre text is here...
the current match is bold
and some post text is here...
--------------
current replace(.*?)expression
[Y]Replace [A]All In File [Z]All Files [P]Preview [M]More [default Next]
[Y]Replace - Replaces current match, with current replace expression
[A]All In File - Replaces all matches for this expression in this file
[Z]All Files - Replaces all matches for this expression in all files
[P]Preview - Preview the change, before deciding to proceed
[M]More - Show more pre-text and post-text
CAVEATS
Be sure to test on your terminal before "guaranteed" reliability
Super complex regular expressions probably won't work the way you think they will.
BUGS
Let me know...
TO DO
More advanced functionality
More reporting (line numbers, etc.)
Find Term::Prompt fix
SEE ALSO
File::Searcher, Term::ANSIColor, Term::Prompt
COPYRIGHT
Copyright 2000, Adam Stubbs
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Please email me if you find this module useful.
AUTHOR
Adam Stubbs, astubbs@advantagecommunication.com (mailto:astubbs@advantagecommunication.com)
Notes
Version 0.9, Last Updated November 14, 2000