perl按行内容来分类:按照一行中元素个数的不同写入不同的文件夹

发布时间:2020-02-23编辑:脚本学堂
perl按行内容来分类:按照一行中元素个数的不同写入不同的文件夹

perl按行内容来分类:按照一行中元素个数的不同写入不同的文件夹,供大家学习参考。

假如,手里有如下所示的文件内容:
1000033 A A A A A A A A A A A A A A C A A A A   
1000114 G G C G G G G G G G G G G G G G G G G   
100013 C C T C T T T C C C C C C T C C C C C   
1000238 C C G C C C C C C C C C C C C C C C C   
100027 T T A T A A A T T T T T T A T T T T T   
1000383 G G G G G A G G A G A A G G A G G G G   

以第一个碱基为参考标准:
第一行:A有18个:其他1个
第二行:G有18个:其他1个
第三行:C有14个:T有5个
第四行:C有18个:G有1个
第五行:T有14个:A有5个

我们需要通过程序,把1,2,4行这样的分到一个文件中,3,5行的内容放到一个文件夹中。

程序如下:
 

复制代码 代码如下:

#!/usr/bin/perl 
#class different line to differet file 
     
use strict; 
use warnings; 
     
open (CLASS,"OnlyATGC.txt")||die("can not open!"); 
open (NUM1,">1-18.txt")||die("can not open!"); 
open (NUM2,">2-17.txt")||die("can not open!"); 
open (NUM3,">3-16.txt")||die("can not open!"); 
open (NUM4,">4-15.txt")||die("can not open!"); 
open (NUM5,">5-14.txt")||die("can not open!"); 
open (NUM6,">6-13.txt")||die("can not open!"); 
open (NUM7,">7-12.txt")||die("can not open!"); 
open (NUM8,">8-11.txt")||die("can not open!"); 
open (NUM9,">9-10.txt")||die("can not open!"); 
open (NUM10,">10-9.txt")||die("can not open!"); 
open (NUM11,">11-8.txt")||die("can not open!"); 
open (NUM12,">12-7.txt")||die("can not open!"); 
open (NUM13,">13-6.txt")||die("can not open!"); 
open (NUM14,">14-5.txt")||die("can not open!"); 
open (NUM15,">15-4.txt")||die("can not open!"); 
open (NUM16,">16-3.txt")||die("can not open!"); 
open (NUM17,">17-2.txt")||die("can not open!"); 
open (NUM18,">18-1.txt")||die("can not open!"); 

my @informations; 
my $information; 
my $cout=1; 
my $firstpase; 
     
while(<CLASS>) 

  chomp; 
  @informations = split; 
  $firstpase    = $informations[1]; 
  foreach $information(@informations) 
  { 
     if($information=~$firstpase) 
     { 
         $cout++; 
     } 
      else 
     { 
          next; 
      } 
        } 
        if($cout==1) 
        { 
            print NUM1 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==2) 
        { 
            print NUM2 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==3) 
        { 
            print NUM3 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==4) 
        { 
            print NUM4 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==5) 
        { 
            print NUM5 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==6) 
        { 
            print NUM6 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==7) 
        { 
            print NUM7 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==8) 
        { 
            print NUM8 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==9) 
        { 
            print NUM9 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==10) 
        { 
            print NUM10 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==11) 
        { 
            print NUM11 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==12) 
        { 
            print NUM12 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==13) 
        { 
            print NUM13 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==14) 
        { 
            print NUM14 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==15) 
        { 
            print NUM15 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==16) 
        { 
            print NUM16 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==17) 
        { 
            print NUM17 "$_n"; 
            $cout=0; 
        } 
        elsif($cout==18) 
        { 
            print NUM18 "$_n"; 
            $cout=0; 
        } 
        else 
        { 
            $cout=0; 
            next; 
        } 
    }