【发布时间】:2013-11-04 07:29:14
【问题描述】:
我有一个制表符分隔的文件 1:
20 50 80 110
520 590 700 770
410 440 20 50
300 340 410 440
读取它们并将它们放入一个数组中:
while(<INPUT>)
{
chomp;
push @inputarray, $_;
}
现在我正在循环另一个文件2:
20, 410, 700
80, 520
300
foreach 文件2 中每一行的编号,我想在@inputarray 中搜索编号。如果存在,我想抓取后面对应的数字。例如,对于数字 20,我想抓取数字 50。我假设它们仍然由字符串中的制表符分隔,该字符串作为 @inputarray 中的数组元素存在。
while(my $line = <INPUT2>)
{
chomp $line;
my @linearray = split("\t", $line);
foreach my $start (@linearray)
{
if (grep ($start, @inputarray))
{
#want to grab the corresponding number
}
}
}
一旦 grep 找到它,我不知道如何抓取该数组元素以找到数字的位置以使用 substr 函数提取相应的数字。如何抓取 grep 找到的数组元素?
期望的输出是:
line1:
20 50
410 440
700 770
line2:
80 110
520 590
line3:
300 340
【问题讨论】:
-
file2 是否可能包含 file1 第二列的数字?例如 50,440,110 等等?
-
File2 仅包含出现在 file1 的第 2 列和第 4 列中的数字。
-
@user2674514:您的示例显示 file2 包含
20, 410, 700,即 file1 的 column1 中的数字。column 2 and 4是您上一条评论中的错字吗?
标签: perl parsing string-parsing