Chinaunix首页 | 论坛 | 博客
  • 博客访问: 837401
  • 博文数量: 109
  • 博客积分: 650
  • 博客等级: 上士
  • 技术积分: 1483
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-01 17:29
文章分类

全部博文(109)

文章存档

2016年(5)

2015年(21)

2014年(16)

2013年(38)

2012年(29)

分类: LINUX

2013-03-16 09:40:06

       

           

           

            100991027 100991028 100991029 100991030 100991031 100991032 100991033 100991034 100991035 100991036 100991037 100991038 100991039 1009

91040 100991041 100991042 100991043 100991044 100991045 100991046 100991047 100991048 100991049 100991050 100991051 100991052 100991053 100991054 100991234 1

00991235 100991427 100991428 100991429 100991430 100991431 100991432 100991433 100991434 100991523

           

                85213 85218 63271 21945 21942 63273 65628 21945 21942 65631 0 0 0 0 21945 21942 19104 19104 18869 18869 1432 1433 28051 28054 21

5 215 0 0 18026457 10523131 1 0 0 0 0 0 0 0 0

           

           

                82989 82986 61495 21492 21494 61494 63738 21492 21494 63737 0 0 0 0 21492 21494 18674 18672 18527 18527 1394 1394 26877 26879 22

6 226 0 0 17468441 10239837 0 0 0 0 0 0 0 0 0

           

           

                71633 71632 52405 19228 19228 52404 54293 19228 19228 54292 0 0 0 0 19228 19228 15861 15861 15545 15544 1095 1095 23259 23258 16

1 161 0 0 15004024 8841928 0 0 0 0 0 0 0 0 0

           

                85294 85296 63953 21340 21341 63956 65277 21340 21341 65280 0 0 0 0 21340 21341 20873 20874 20804 20802 752 752 23813 23819 142

142 0 0 17955088 10441777 0 0 0 0 0 0 0 0 0

           

       


#################################################3

#!/bin/perl

my $InputFile=@ARGV[0]; #source File Name

my $DataDir=@ARGV[1];   #the Directory for data File save

my $necode=@ARGV[2];

@s;

@m;

 

my $tmp="";

my $j=0;

 

die("can not open file \"$inPutFile\"")unless(open(HWSOURCEFILE,$InputFile));

while ($line=) {

   $line=DeleteEndNewLineCharacter($line);

   if ($line =~ /^

     $line = &GetProperties($line,"measInfoId");

         $tmp=$line;

        

         if ($DataDir !~ /\/$/) {

     $DataDir=$DataDir."/";

     }

         #print $DataDir;

         #print $line;        

   }

    elsif ($line =~ /^

     $line = &GetProperties($line,"endTime");

     $line = substr($line,0,index($line,"+"));

     $line =~ s/T/ /g;

     $line = &strTrim($line);

         $endtime=$line;

   }

elsif ($line =~ /

        $line = &GetProperties($line,"measObjLdn");

        #$line = substr($line,0,index($line,"+"));

        #$line =~ s/\//\t/g;

        $line = &strTrim($line);

        $measObjLdn=$line;

} 

   elsif($line =~ /^

        {

     my $result2 = (split(">",$line))[1];

         $result2 = (split("<",$result2))[0];

     $result2 = &strTrim($result2);

     $result2 =~ s/ /   /g;

         $result2 =~ s/NIL//g;

        

         @s=split/\s+/,$result2;

         $filename2=$DataDir.$tmp."-measTypes.txt";

         print "***".$filename2."***";

        

         open(fhn2,">>$filename2")|| die $!;

     unshift(@s,"measObjLdn");

     unshift(@s,"endtime");

         unshift(@s,"number");

 

         while(@s)

                {

                

                 $value2=shift(@s);

                

         print fhn2 ("$value2\t");

        

                 }

                 close(fhn2);

   }

   elsif ($line =~ /^

     my $result = (split(">",$line))[1];

         $result = (split("<",$result))[0];

     $result = &strTrim($result);

     $result =~ s/ /    /g;

         $result =~ s/NIL//g;

         #print "[$result]\n";

         @m=split/\x20/,$result;

 

         $filename=$DataDir.$tmp."-measResults.txt";

         print "***".$filename."***";

         open(fhn1,">>$filename")|| die $!;

         while(@m)

                {

                 $j++;

                 $value=shift(@m);          

         print fhn1 ("$j\t$endtime\t$necode\t$measObjLdn\t$value"); 

                

                 unless(@m)

                        {

                 print fhn1 ("\n");

                 last;

                 }

                 }

                

                 close(fnn1);    

   }

 elsif ($line =~ /^<\/measInfo/){

        $j=0;

   }

 

}

 

   #Get Tags Properties

sub GetProperties {

  my($content,$subsybol) = @_;

  $content = (split($subsybol,$content))[1];

  $content = (split("\"",$content))[1];

  $content = (split("\"",$content))[0];

  return $content;

}

 

#delete ^M charterect

sub DeleteEndNewLineCharacter{

  my ($content)=@_;

  $content=substr($content,0,length($content)-1);

  $content=strTrim($content);

  return $content;

}

 

#delete space

sub strTrim {

  my ($content)=@_;

  $content=~s/^[ ]+|[ ]+$//g;

  return $content;

}

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

@array = split(/ + /, $line);
$pattern = "[\\t ]+";
 @words = split(/$pattern/, $line);
注:split函数每次遇到分割模式,总是开始一个新单词,因此若$line以空格打头,则@array的第一个元素即为空元素。但其可以区分是否真有单词,如若$line中只有空格,则@array则为空数组。且上例中TAB字符被当作一个单词。注意修正。  

下面是在for循环中使用逗号操作符的例子:
  for ($line = , $count = 1; $count <= 3;   $line = , $count++) {
    print ($line);
  }
它等价于下列语句:
  $line = ;
  $count = 1;
  while ($count <= 3) { 
    print ($line);
    $line = ;
    $count++;
  }
###########
一、条件判断 
  if ( ) {
    
  }
  elsif ( ) {
    
  }
  ...
  else{
    
  }
二、循环: 
1、while循环 
  while ( ) {
    
  }
2、until循环 
  until ( ) {
    
  }
针对列表(数组)每个元素的循环:foreach,语法为:
  foreach localvar (listexpr) {
    statement_block;
  }
例:
  foreach $word (@words) {
    if ($word eq "the") {
      print ("found the word 'the'\n"); 
    }
  }
注:
(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍恢复该值。
(2)在循环中改变局部变量,相应的数组变量也会改变,如:
  @list = (1, 2, 3, 4, 5);
  foreach $temp (@list) {
    if ($temp == 2) {
      $temp = 20;
    }
  }
此时@list已变成了(1, 20, 3, 4, 5)。
6、循环控制 
  退出循环为last,与C中的break作用相同;执行下一个循环为next,与C中的continue作用相同;PERL特有的一个命令是redo,其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。
7、传统的goto label;语句
三、单行条件 
  语法为statement keyword condexpr。其中keyword可为if、unless、while或until,如:
    print ("This is zero.\n") if ($var == 0);
    print ("This is zero.\n") unless ($var != 0);
    print ("Not zero yet.\n") while ($var-- > 0);
    print ("Not zero yet.\n") until ($var-- == 0);
  虽然条件判断写在后面,但却是先执行的。

阅读(874) | 评论(0) | 转发(0) |
0

上一篇:RAID 技术经典解析

下一篇:存储过程1

给主人留下些什么吧!~~