我正在尝试使用 perl 在文本文件中转换多行以逗号分隔的值列表。
第一个文件如下所示:
A:25, B:14, C:3
A:25, E:5
B:14, D:8, E:5
第二个文件是制表符分隔的,如下所示:
A:25 AS363
B:14 SDD645
C:3 KF8756
D:8 LFK4523
E:5 FSE523
理想情况下,我希望输出像原始文件一样以逗号分隔,只是所有内容都被转换,所以输出应该如下所示:
AS363, SDD645, KF8756
AS363, FSE523
SDD645, LFK4523, FSE523
到目前为止,这是我的代码:
#!/usr/bin/perl
use strict;
use warnings;
my $filename = $ARGV[0];
my $filename1 = $ARGV[1];
open(FILE, $filename);
while (my $line = <FILE>){
my @items = split /\s*,\s*/, $line;
foreach my $items (@items) {
#print "$items\n";
}
}
close FILE;
open(FILE1, $filename1);
while (my $line1 = <FILE1>)
{
my @ids = split /[\r\n\t]/,$line1;
#print "$ids[1]\n";
if (my $items==$ids[1]){
print "$ids[1]\n";
}
}
close FILE1;
在这一点上它似乎失败了,因为第一部分中的 $items 不是全局的......如果我围绕所有内容扩展第一个 while 循环,那也不起作用,所以我不确定如何继续。我也分别只是试图转换回逗号分隔我假设我必须使用类似的东西
join (",", ...)
但这似乎也不起作用......有什么建议吗?谢谢!