首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何提取perl中的列并放入单独的文件中?

如何提取perl中的列并放入单独的文件中?
EN

Stack Overflow用户
提问于 2013-11-05 19:40:22
回答 1查看 81关注 0票数 0

我有以下数据,这些数据由双列的制表符分隔数据组成,尽管前三列不是每个doublet的一部分:

代码语言:javascript
运行
复制
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
....

我需要从中提取信息,以给出以下以制表符分隔的输出:

第一个文件:HX-20.txt

代码语言:javascript
运行
复制
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
....

第二个文件:HX-474.txt

代码语言:javascript
运行
复制
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
....

第三个文件:HX-549.txt

代码语言:javascript
运行
复制
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做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2013-11-05 20:49:30

我会这样做:

代码语言:javascript
运行
复制
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";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19788141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档