#文件目录
$dir_name=<D:\\pv\\>;
opendir(DIR,$dir_name) || die "Can't open directory $dir_name";
@dots = readdir(DIR);
for my $f(@dots){
#当文件名包含.log时
if($f=~/.log/)
{
#打开文件,并获取相应数据,
#.为字符串连接符
open(files,$dir_name.$f);
@all = <files>;
close files;
open(fn,">>pvtest.log");
open(fn1,">>pvtest1.log");
## 获取1个文件的每一行,分割后获取到第二个数据
for $fns(@all)
{
# 获取1个文件的每一行,分割后获取到第二个数据 begin
@a = split(/\|/,$fns );
$t = @a;
$ss = $a[$t-2];
if(!$ss eq "")
{
print fn "'".$ss."'".",\n";
}
# 获取1个文件的每一行,分割后获取到第二个数据 end
}
##合并文件
#获取数据数组长度
$count = @all;
if($count>0)
{
print fn1 @all;
}
close fn;
close fn1;
}
}
#数据去重,并保存
open(fn,"pvtest.log");
my %hash;
my @array = <fn>;
#grep 保存符合条件的元素
@array = grep { ++$hash{$_} < 2 } @array;
close fn;
open(fn,">pvtest.log");
print fn @array;
close fn;
closedir DIR;
$dir_name=<D:\\pv\\>;
opendir(DIR,$dir_name) || die "Can't open directory $dir_name";
@dots = readdir(DIR);
for my $f(@dots){
#当文件名包含.log时
if($f=~/.log/)
{
#打开文件,并获取相应数据,
#.为字符串连接符
open(files,$dir_name.$f);
@all = <files>;
close files;
open(fn,">>pvtest.log");
open(fn1,">>pvtest1.log");
## 获取1个文件的每一行,分割后获取到第二个数据
for $fns(@all)
{
# 获取1个文件的每一行,分割后获取到第二个数据 begin
@a = split(/\|/,$fns );
$t = @a;
$ss = $a[$t-2];
if(!$ss eq "")
{
print fn "'".$ss."'".",\n";
}
# 获取1个文件的每一行,分割后获取到第二个数据 end
}
##合并文件
#获取数据数组长度
$count = @all;
if($count>0)
{
print fn1 @all;
}
close fn;
close fn1;
}
}
#数据去重,并保存
open(fn,"pvtest.log");
my %hash;
my @array = <fn>;
#grep 保存符合条件的元素
@array = grep { ++$hash{$_} < 2 } @array;
close fn;
open(fn,">pvtest.log");
print fn @array;
close fn;
closedir DIR;