0

最初の 3 列は各ダブレットの一部ではありませんが、2 列のタブ区切りデータで構成される次のデータがあります。

Name    Type    Pos HX-20_4218.txt.Geo A Position   HX-20_4218.txt.Geo B Position   HX-474_3712.txt.Geo A Position  HX-474_3712.txt.Geo B Position  HX-549_3943.txt.Geo A Position  HX-549_3943.txt.Geo B Position
A-2345252   1   5   0.3574  0.9796  0.3178  0.9641  0.5564  1.0000
A-1969580   1   7   -0.3777 1.0000  -0.6987 1.0000  0.1007  0.9696
....

次のタブ区切りの出力を得るには、これから情報を抽出する必要があります。

1 番目のファイル:HX-20.txt

Name    Type    Pos HX-20_4218.txt.Geo A Position   HX-20_4218.txt.Geo B Position
A-2345252   1   5   0.3574  0.9796
A-1969580   1   7   -0.3777 1.0000
....

2 番目のファイル:HX-474.txt

Name    Type    Pos HX-474_3712.txt.Geo A Position  HX-474_3712.txt.Geo B Position
A-2345252   1   5   0.3178  0.9641
A-1969580   1   7   -0.6987 1.0000
....

3 番目のファイル:HX-549.txt

Name    Type    Pos HX-549_3943.txt.Geo A Position  HX-549_3943.txt.Geo B Position
A-2345252   1   5   0.5564  1.0000
A-1969580   1   7   0.1007  0.9696
....

perlでこれを行うにはどうすればよいですか?

4

1 に答える 1

0

私は次のようなことをします:

open my $in, '<', $filein or die $!
open my $out1, '>', $fileout1 or die $!
open my $out2, '>', $fileout2 or die $!
open my $out3, '>', $fileout3 or die $!

while(<$in>) {
    chomp;
    my @cols = split(/\t/, $_);
    my $line1 = join("\t", (@cols)[0..4]);
    my $line2 = join("\t", (@cols)[0..2,5,6]);
    my $line3 = join("\t", (@cols)[0..2,7,8]);
    print $out1 $line1,"\n";
    print $out2 $line2,"\n";
    print $out3 $line3,"\n";
}
于 2013-11-05T12:49:29.993 に答える