perl を使用して、テキスト ファイル内の値のコンマ区切りリストの複数行を変換しようとしています。
最初のファイルは次のようになります。
A:25, B:14, C:3
A:25, E:5
B:14, D:8, E:5
2 番目のファイルはタブ区切りで、次のようになります。
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 (",", ...)
しかし、これもうまくいかないようです...アドバイスはありますか?ありがとう!