【发布时间】:2016-04-30 07:37:47
【问题描述】:
请帮忙。
我有两个文件(file1 和 file2)。我想从 file2 中提取其 ID 列在 file1 中的列。这些文件很大,有数千列和数千行。
文件1
Id123B
Id124A
Id125A
文件2
Code sex id123B id127 id125A
所需的输出文件:
code sex id123B id125A
以下是我尝试过的代码,但是失败了。
!/usr/bin/perl
use strict;
use warnings;
open my $IN, "file2" or die $!;
my $header = <$IN>;
my %sampleID = map { /(.*?)\t/; $1 => 1 } <$IN>;
close($IN);
open $IN, "file1" or die $!;
$header = <$IN>;
my @samples = split /\t/, $header;
my @cols = grep { exists $sampleID{$samples[$_]} } 0..$#samples;
while(<$IN>){
chomp;
my @line = (split /\t/)[@cols];
print join( "\t", @line ), "\n";
}
【问题讨论】: