- 论坛徽章:
- 2
|
回复 43# 鸟鸟不哥
好人做到底,试试perl- #!/bin/perl
- use strict;
- my %mon = (
- "JAN" => "01",
- "FEB" => "02",
- "MAR" => "03",
- "APR" => "04",
- "MAY" => "05",
- "JUN" => "06",
- "JUL" => "07",
- "AUG" => "08",
- "SEP" => "09",
- "OCT" => "10",
- "NOV" => "11",
- "DEC" => "12"
- );
- my (%data,%d);
- open(f1,"file1") or die "$!";
- while(<f1>){
- chomp;
- my @a = split /\s+/;
- $data{fun($a[1]).$a[2]."#1"} = $_;
- $d{$a[1]."#".$a[2]} = fun($a[1]).$a[2];
- }
- close(f1);
- open(f2,"file2") or die "$!";
- while(<f2>){
- chomp;
- my @a = split /\s+/;
- $data{fun($a[1]).$a[2]."#2"} = $_;
- $d{$a[1]."#".$a[2]} = fun($a[1]).$a[2];
- }
- close(f2);
- sub fun(){
- my $s = shift;
- $s = join "", map{defined $mon{$_}?$mon{$_}:$_} reverse (split /-/, $s);
- return $s;
- }
- my $S = "NULL NULL NULL 0";
- foreach my $t (sort {$d{$a} <=> $d{$b}} (keys %d)){
- if($data{$d{$t}."#1"} && $data{$d{$t}."#2"}){
- print $data{$d{$t}."#1"}," ",$data{$d{$t}."#2"},"\n";
- }
- elsif($data{$d{$t}."#1"}){
- print $data{$d{$t}."#1"}," ",$S,"\n";
- }else{
- print $S," ",$data{$d{$t}."#2"},"\n";
- }
- }
复制代码 |
|