免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ahy114
打印 上一主题 下一主题

小菜求助:获取指定序列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-09-12 17:38 |显示全部楼层 |倒序浏览
本帖最后由 ahy114 于 2016-09-12 17:42 编辑

总共有3个文件。
第一个文件里面每一行说明了需要的内容所在的group,区间范围,以及type(a,b,c)。
第二个文件指明了第三个文件中每个group中不同的位置的类型。
第三个文件是每个group全部的内容,“>”开头的表明是那个group,下面一行是group的全部内容。

需要:
在第三个文件中找出第一个文件每一行指定的序列。



文件内容:
-------------------------第一个文件--------------------------------

group:start|stop        type
3:4|17     a
5:11|19   b

-------------------------第二个文件--------------------------------
group        start        stop        type
3        1        5        a
3        6        9        b
3        11        15        c
5        1        7        a
5        8        15        b


-------------------------第三个文件--------------------------------
>1
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefg
>2
123456123456123456123456123456123456123456
>3
abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
>4
a1b2c3a1b2c3a1b2c3a1b2c3a1b2c3a1b2c3a1b2c3
>5
aabbcc112233aabbcc112233aabbcc112233aabbcc112233aabbcc112233aabbcc112233aabbcc

360反馈意见截图16251121224375.png (8.45 KB, 下载次数: 32)

360反馈意见截图16251121224375.png

论坛徽章:
0
2 [报告]
发表于 2016-09-13 00:14 |显示全部楼层
回复 3# sunzhiguolu

第一个文件是需要的大区间,这个大区间里可能会有好几个类型,比如,为3的group,1-5是a类型,6-9是b类型。对于第一个文件的第一行,大区间是4-17,需要的是a类型,在这个区间里,a类型是4-5。所以,对应的结果如图

360反馈意见截图16520821899586.png (4.19 KB, 下载次数: 27)

360反馈意见截图16520821899586.png

论坛徽章:
0
3 [报告]
发表于 2016-09-13 15:38 |显示全部楼层
回复 5# sunzhiguolu

太感谢大神了!!

论坛徽章:
0
4 [报告]
发表于 2016-09-13 18:57 |显示全部楼层
本帖最后由 ahy114 于 2016-09-13 19:18 编辑

回复 5# sunzhiguolu

还有两个问题想请教下,第一,我尝试了一下,如果一个大区间有一个以上需要的类型的小区间,不能正常工作,例如,第二个文件的第三行的类型为a而不是c。第二,perl本身的问题,
  1. sub load_data{
  2.     local @ARGV = shift;
  3.     my $data = shift;
  4.     my $merge = defined $data;
  5. ...
  6. ...

  7. }

  8. my $data;
  9. $data = load_data (shift, $data);               
  10. $data = load_data (shift, $data);        
复制代码
您代码中的这几个shift我没有看懂,能不能简单解释下,谢谢您了!

论坛徽章:
0
5 [报告]
发表于 2016-09-13 19:44 |显示全部楼层
回复 8# sunzhiguolu

比如
-------------------------第二个文件--------------------------------
group        start        stop        type
3        1        5        a
3        6        9        b
3        11        15        a
5        1        7        a
5        8        15        b


那么期望结果就应该是“12”和“23abc”,即1223abc

论坛徽章:
0
6 [报告]
发表于 2016-09-13 23:20 |显示全部楼层
回复 11# sunzhiguolu

我用下面这个图说明了下

截图.png (37.36 KB, 下载次数: 96)

截图.png

论坛徽章:
0
7 [报告]
发表于 2016-09-18 00:34 |显示全部楼层
完美,感谢大神的帮助!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP