免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Shell shell
最近访问板块 发新帖
查看: 1015 | 回复: 2

[文本处理] shell [复制链接]

论坛徽章:
0
发表于 2018-11-13 12:10 |显示全部楼层
求助:

现有文件file.txt 内容为坐标位置信息, 第二列为起始,第三列为终止, 第四列为距离。
现在想要统计每一个基因(第五列)的总长度,不同行之间第二列 第三列有重叠的部分, 如果只是单纯把第四列相加则有些位置计算了多次,不能达到目的。

所以 想请教各位帮忙解决一下,谢谢!
chrX        106893170        106894256        1087        ENSG00000147224.6
chrX        106893170        106893531        362        ENSG00000147224.6
chrX        106893170        106893480        311        ENSG00000147224.6
chrX        106871737        106871980        244        ENSG00000147224.6
chrX        106884132        106884354        223        ENSG00000147224.6
chrX        106871760        106871980        221        ENSG00000147224.6
chrX        106871793        106871980        188        ENSG00000147224.6
chrX        106882525        106882708        184        ENSG00000147224.6
chrX        106888407        106888580        174        ENSG00000147224.6
chrX        106893320        106893487        168        ENSG00000147224.6
chrX        106890836        106890995        160        ENSG00000147224.6
chrX        106885596        106885720        125        ENSG00000147224.6
chrX        106871858        106871980        123        ENSG00000147224.6
chrX        106882588        106882708        121        ENSG00000147224.6
chrX        106893170        106893270        101        ENSG00000147224.6
chrX        106884132        106884230        99        ENSG00000147224.6
chrX        106871745        106871786        42        ENSG00000147224.6
chr12        25357723        25362845        5123        ENSG00000133703.7
chr12        25386753        25388160        1408        ENSG00000133703.7
chr12        25362102        25362845        744        ENSG00000133703.7
chr12        25362365        25362845        481        ENSG00000133703.7
chr12        25403685        25403870        186        ENSG00000133703.7
chr12        25403685        25403865        181        ENSG00000133703.7
chr12        25380168        25380346        179        ENSG00000133703.7
chr12        25403698        25403863        166        ENSG00000133703.7
chr12        25378548        25378707        160        ENSG00000133703.7
chr12        25368371        25368494        124        ENSG00000133703.7
chr12        25398208        25398329        122        ENSG00000133703.7
chr12        25403685        25403737        53        ENSG00000133703.7



论坛徽章:
7
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:06
发表于 2018-11-13 15:57 |显示全部楼层
总长度是如何定义的呢?  最大的终止坐标 - 最小的起始坐标+1?

论坛徽章:
21
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之深圳
日期:2018-06-15 14:59:3715-16赛季CBA联赛之八一
日期:2018-07-03 16:56:4615-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59
发表于 2018-11-14 17:50 |显示全部楼层
本帖最后由 wh7211 于 2018-11-14 17:52 编辑

回复 1# biobaby


  1. awk '{a[$5]=a[$5]&&a[$5]<$2?a[$5]:$2;b[$5]=b[$5]>$3?b[$5]:$3}END{for(i in a){print i,b[i]-a[i]+1}}' file.txt
  2. ENSG00000147224.6 22520
  3. ENSG00000133703.7 46148
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP