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;
} 展开
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;
} 展开
展开全部
@lines是一个数组,里面是文件中的每一行的内容。对该数据的操作方法是
1
2
3
4
foreach $line (@lines) # 循环读取每一行
{
.... # $line是一行的内容
}
读到每一行后,对该行进行操作,使用split函数进行拆分。对于不行的文件格式,有不同的拆分方法,你应该看一行列的拆分方式,比如是用的逗号分隔,还是制表符分隔。拆分方法如下:
1
@cols = split(/[,\t]/, $line) # 对$line进行拆分,拆分依据是逗号或制表符
然后得到的@cols数组就是每一列了,第一列就是$cols[0],第二列是$cols[1],然后你就可以将你的结果输出到OUT了。
1
2
3
4
foreach $line (@lines) # 循环读取每一行
{
.... # $line是一行的内容
}
读到每一行后,对该行进行操作,使用split函数进行拆分。对于不行的文件格式,有不同的拆分方法,你应该看一行列的拆分方式,比如是用的逗号分隔,还是制表符分隔。拆分方法如下:
1
@cols = split(/[,\t]/, $line) # 对$line进行拆分,拆分依据是逗号或制表符
然后得到的@cols数组就是每一列了,第一列就是$cols[0],第二列是$cols[1],然后你就可以将你的结果输出到OUT了。
追问
能帮忙看看我的这个程序吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询