【发布时间】:2014-11-24 08:37:36
【问题描述】:
我有两个制表符分隔的表格:
table1
col1 col2 col3 col4
id1 1 1 10
id2 1 15 20
id3 1 30 35
id4 2 10 15
table2
col1 col2 col3
rs1 5 1
rs2 11 1
rs3 34 1
rs4 35 1
我首先要检查 col3-table2 和 col2-table1 中的值是否匹配。如果这是 TRUE,那么我想检查 col2-table2 中是否有介于 col3 和 col4 - table1 中的值之间的值。如果是这种情况,我想将 col1 和 col2 的相应值打印到 table1 的新列中。
所以在本例中,最终结果文件应如下所示:
table output
col1 col2 col3 col4 new_col1
id1 1 1 10 rs1:5
id2 1 15 20
id3 1 30 35 rs3:34, rs4:35
id4 2 10 15
打开并加载文件后,我开始将 table2 的值存储在数组数组中。
my @table2;
while (<$table2>){
next if /^\s*#/; #to skip header lines
my @columns = split;
next if $columns[1] =~ /\D/;
push @table2, \@columns;
}
while (<$table1>){
my @columns = split;
...
}
我现在如何检查 col3-table2 和 col2-table1 中的值是否匹配。以及如何继续检查 col2-table2 中的值是否介于 col3 & col4 - table1 中的值之间。
【问题讨论】:
-
请阅读 perldoc perldsc 和 perllol
标签: perl