perl的数据提取与匹配 10

大致的意思是吧IN的文件中两列分别以KEY和value提取出来,然后在IN2中匹配,并把匹配后的value插入到IN2的第一列,中间有点问题,请大神解答啊KEY是包括数字... 大致的意思是吧IN的文件中两列分别以KEY和value提取出来,然后在IN2中匹配,并把匹配后的value插入到IN2的第一列,中间有点问题,请大神解答啊

KEY是包括数字和字母的,VALUE也包括特殊字符
open IN,"text2.txt";#geneId geneSymbol
open IN2,"text1.txt";#geneIds
open OUT,"> file3.txt";#ouput file
my %hash=();
my @str=();
while(<IN>){
chomp;
@str=split;
$hash{$str[0]}=$str[1];
}
while(<IN2>){
s/(\d+)/$hash{$1}/g;
print OUT;
}
展开
 我来答
很尴尬的萨嘎bC
2016-07-26 · TA获得超过944个赞
知道大有可为答主
回答量:881
采纳率:0%
帮助的人:778万
展开全部
@lines是一个数组,里面是文件中的每一行的内容。对该数据的操作方法是

1
2
3
4

foreach $line (@lines) # 循环读取每一行
{
.... # $line是一行的内容
}

读到每一行后,对该行进行操作,使用split函数进行拆分。对于不行的文件格式,有不同的拆分方法,你应该看一行列的拆分方式,比如是用的逗号分隔,还是制表符分隔。拆分方法如下:

1

@cols = split(/[,\t]/, $line) # 对$line进行拆分,拆分依据是逗号或制表符

然后得到的@cols数组就是每一列了,第一列就是$cols[0],第二列是$cols[1],然后你就可以将你的结果输出到OUT了。
追问
能帮忙看看我的这个程序吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式