文件1,2和3有很多列,我需要从特定文件中提取特定列,例如文件1中的前3列,文件2中的第3列和文件3中的第3列,并保存另一个文件。 注意:文件名不固定,但要提取的列是固定的
my @file = <>
my @OA = ();
foreach my $line (@file)
{
my @temp = split(/\t/, trim($_));
push(@OA, $temp[0] . "\t" . $temp[1] . "\t" . $temp[2] . "\n");
}
这有助于从单个文件中提取数据。 任何人都可以帮助我扩展它以从文件2中获取列等等。
谢谢, Ñ
答案 0 :(得分:0)
这里有一个关于如何并行处理多个文件句柄的存根:
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my @fhs;
for my $file (qw(file1.txt file2.txt file3.txt)) {
open my $fh, '<', $file;
push @fhs, $fh;
}
while (! grep eof, @fhs) {
my @lines = map {scalar <$_>} @fhs;
chomp @lines;
print "fh0 = $lines[0]\n";
print "fh1 = $lines[1]\n";
print "fh2 = $lines[2]\n";
}