Perl编程问题,怎样替换对应的数字或者字符串?
我有两个文件1.txt和2.txt.在1.txt中,有2列,第一列是元素名字,第二列是它对应的数字,但是有几百行。格式如下:a(3)xvsd1bfsoek2arg3tya...
我有两个文件1.txt和2.txt.
在1.txt中,有2列,第一列是元素名字,第二列是它对应的数字,但是有几百行。 格式如下:
a(3)xvsd 1
bfsoek 2
arg 3
tya 4......等等
在2.txt中也有几百行,每一行都是由1.txt中的元素组成的序列例如:
a(3)xvsd-arg-bfsoek
arg-tya-arg-bfsoek
............
我现在要把2.txt中的序列,用1.txt中元素相对应的数字来替换该怎么做?
例如 1-3-2
3-4-3-2 展开
在1.txt中,有2列,第一列是元素名字,第二列是它对应的数字,但是有几百行。 格式如下:
a(3)xvsd 1
bfsoek 2
arg 3
tya 4......等等
在2.txt中也有几百行,每一行都是由1.txt中的元素组成的序列例如:
a(3)xvsd-arg-bfsoek
arg-tya-arg-bfsoek
............
我现在要把2.txt中的序列,用1.txt中元素相对应的数字来替换该怎么做?
例如 1-3-2
3-4-3-2 展开
若以下回答无法解决问题,邀请你更新回答
展开全部
my %data;
open f1, "1.txt" or die "Can't open F1";
while ( chomp ( my $line = <f1> ) ) {
$line =~ s/\s+(\d+)$//;
$data{$line} = $1;
}
close f1;
open f2, "2.txt" or die "Can't open F2";
while ( chomp ( my $line = <f2> ) ) {
my @temp = split /-/, $line;
my $tempLine;
$tempLine .= $data{$_} . "-" foreach ( @temp );
chop $tempLine;
print $tempLine . $/;
}
close f2;
open f1, "1.txt" or die "Can't open F1";
while ( chomp ( my $line = <f1> ) ) {
$line =~ s/\s+(\d+)$//;
$data{$line} = $1;
}
close f1;
open f2, "2.txt" or die "Can't open F2";
while ( chomp ( my $line = <f2> ) ) {
my @temp = split /-/, $line;
my $tempLine;
$tempLine .= $data{$_} . "-" foreach ( @temp );
chop $tempLine;
print $tempLine . $/;
}
close f2;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询