- 论坛徽章:
- 0
|
本帖最后由 blackantt 于 2018-09-21 09:37 编辑
谢谢各位
已经有朋友给用perl解决了。红包已发。只用了一个数据作测试。基本能用就行。
use Cwd;
use Data: umper;
use Encode;
use utf8;
my $dir = getcwd;
my $keyfile = $dir.'/key.txt';
my $targetpath = $dir.'/txt';
my $resultfile = $dir.'/result.txt';
print $keyfile;
open(RD,$keyfile);
my @keys;
while(<RD> {
my $line = $_;
$line =~ s/\n//isg;
$line = decode('utf8',$line);
push @keys,$line;
}
close RD;
print Dumper @keys;
opendir DIR,${targetpath};
my @filelist = readdir DIR;
shift @filelist;
shift @filelist;
open(WT,">".$resultfile);
shift @keys;
for my $onekey (@keys){
my $num = 0;
my $flag = 'no';
print WT "result of ".$onekey.":\n";
for my $one (@filelist){
open(RDD,$targetpath.'\\'.$one);
$/ = encode('utf8',"。" ;
my @lines=<RDD>;
for my $oneline (@lines){
$oneline = decode("utf8", $oneline);
my $newline = $oneline;
$newline =~ s/$onekey/(*$onekey*)/isg;
if ($newline ne $oneline){
print WT $onekey,"...",$newline."\n\n";
$num++;
}
if ($num ==20){
$flag = 'yes';
last;
}
}
if ($flag eq 'yes'){
last;
}
print $one;
}
}
|
|