我正在尝试在 Perl 中编写一个在特定目录和所有子目录中搜索的脚本。这样做的目的是脚本必须读取目录中的所有文件和所有子目录以查找特定的文本字符串(我定义的任何字符串)。如果在文件中找到该字符串,则脚本将在新文本文件中打印文件的路径和名称,并继续处理目录树中的所有文件。
我有类似的东西,但我不确定如何继续。我是 Perl 的初学者,对所有选项一无所知。
#!/usr/bin/perl
use strict;
use File::Find;
my $dir = 'C:\PATH\TO\DIR';
my $string = "defined";
find(\&printFile, $dir);
sub printFile {
my $element = $_;
open FILE, "+>>Results.txt";
if(-f $elemento && $elemento =~ /\.txt$/) {
my $boolean = 0;
open CFILE, $elemento;
while(<CFILE>) {
if ($string) {
print FILE "$File::Find::name\n";
}
close CFILE;
}
}
close FILE;
}
sleep(5);