加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl切割日志的利器

发布时间:2020-12-16 00:33:21 所属栏目:大数据 来源:网络整理
导读:用了过awk,python,perl都切过日志,还是感觉perl是切日志的高手,执行效率高,功能也足够强大。下面是一个小例子: open(FILE,"/data/ebi/meta/log"); open(CONF,"/data/ebi/conf/urltype.txt"); open(LOG,"/data/ebi/meta/log_2"); @array1=(); while(CONF)
用了过awk,python,perl都切过日志,还是感觉perl是切日志的高手,执行效率高,功能也足够强大。下面是一个小例子:
open(FILE,"/data/ebi/meta/log");
open(CONF,"/data/ebi/conf/urltype.txt");
open(LOG,">/data/ebi/meta/log_2");
@array1=();
while(<CONF>) {
?? ? ? ? chomp;
?? ? ? ? @array2 = split(/,/,$_);
?? ? ? ? if(scalar(@array2)>=6){
?? ? ? ? ? ? ? ?push @array1,[@array2];
?? ? ? ? }?
}

close(CONF);


while(<FILE>)
{
??chomp;
??my ($suv,$times,$ip,$url,$refer,$type1) = split(/s+/,$_);
??$type=$type1;
??my (undef,undef,$site) = split(///,$url);
??if($urlsitemap{$url}){
?? ? ? ? $site = $urlsitemap{$url}[0];?
?? ? ? ? $prod = $urlsitemap{$url}[1];
?? ? ? ? $fun = $urlsitemap{$url}[2];
??}
??else{
?? ? ? ? ?for $i (0 .. $#array1){ ?
?? ? ? ? ? ? ? ?$regx = @{$array1[$i]}[1]; ?
?? ? ? ? ? ? ? ?if($url=~/$regx/){
?? ? ? ? ? ? ? ? ? ? ? ?$site = @{$array1[$i]}[2];?
?? ? ? ? ? ? ? ? ? ? ? ?$prod = @{$array1[$i]}[3];
?? ? ? ? ? ? ? ? ? ? ? ?$fun = @{$array1[$i]}[4];
?? ? ? ? ? ? ? ? ? ? ? ?$urlsitemap{$url}=[$site,$prod,$fun];
?? ? ? ? ? ? ? ? ? ? ? ?last;
?? ? ? ? ? ? ? ?}
?? ? ? ? ?}?
??}

print LOG "$site $suv $ip $url $refer,$typen?";

}

close(FILE);

close(LOG);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读