zoukankan      html  css  js  c++  java
  • Perl根据日期分割数据文件

    Perl的优势:比C好写,比Shell高效,Linux普遍支持。

    #!/usr/bin/perl -w
    #    auth: lichmama@cnblogs.com
    #    what: split data_file by date.
    
    my $fullpath = $0;
    my $script_name = sprintf "%s", $fullpath =~ /[^/]*.pl/g;
    my $datafile;
    my $destpath;
    my $filename;
    my $ARGC = scalar @ARGV;
    
    if($ARGC<1 || $ARGC>2){
        die "Usage: $script_name [data_file] [dest_path]
    ";
    }else{
        $datafile = $ARGV[0];
        $filename = sprintf "%s", $datafile =~ /[^/]*$/g;
        if($ARGC == 2){
            $destpath = $ARGV[1] . "/";
        }else{
            $destpath = sprintf "%s", $datafile =~ /([^/]+/)+/g;
        }
    }
    
    my %hash;
    
    open(DATA, $datafile) or die "Error: cannot open file $datafile
    ";
    while(<DATA>){
        my $line = $_;
        my $date = substr($line, 0, 10);
        if(!$hash{$date}){
            open($hash{$date}, ">>$destpath$filename.$date.tmp") 
                or die "Error: cannot create file: $destpath$filename.$date.tmp
    ";
        }
        print {$hash{$date}} $line;
    }
    close(DATA);
    
    foreach my $fd (values(%hash)){
        close($fd);
    }
  • 相关阅读:
    第八周上机作业
    第七周课后作业
    第七周上机作业
    第六周课后作业
    第六周上机
    第九周JAVA
    第八周JAVA
    第8次JAVA作业
    第七周JAVA
    第7周JAVA
  • 原文地址:https://www.cnblogs.com/lichmama/p/4378152.html
Copyright © 2011-2022 走看看