免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2236 | 回复: 3

[文本处理] 提取第一列相同的,第二列连续为cds、intron、cds,且第三列前两个数字相同、第三个+1 [复制链接]

论坛徽章:
0
发表于 2014-06-28 11:09 |显示全部楼层
给位请帮忙,我有如下文件,想提取第一列相同的,第二列连续为cds、intron、cds,且第三列前两个数字相同、第三个+1

处理前:

ENSMUSG00000000037      cds        4      
ENSMUSG00000000037      intron    7     
ENSMUSG00000000037      cds        8   
  
ENSMUSG00000000325      cds        3      
ENSMUSG00000000325      intron     3
ENSMUSG00000000325      cds        4

ENSMUSG00000000305      cds        5      
ENSMUSG00000000308      cds        2   
ENSMUSG00000000308      cds        6  
ENSMUSG00000000308      intron    6   


处理后:


ENSMUSG00000000325      cds        3      
ENSMUSG00000000325      intron     3
ENSMUSG00000000325      cds        4

谢谢各位!

论坛徽章:
1
巨蟹座
日期:2014-06-10 23:03:47
发表于 2014-06-28 19:29 |显示全部楼层
  1. awk '$2~/cds/{a=$1;b=$3;c[0]=$0;next}{if($1==a && $2=="intron" && $3==b){c[1]=$0;getline}else next;if($1==a && $2=="cds" && $3==b+1){print c[0] "\n" c[1] "\n" $0}else if($2=="cds"){a=$1;b=$3;c[0]=$0}}'
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2014-06-28 20:41 |显示全部楼层
回复 1# 米兰的_小木匠
  1. awk '!a[$1]++{if($2=="cds"){i=$3;t=$0;getline;if(i==$3 && $2=="intron"){t=t RS $0;getline;if(i==$3-1 && $2=="cds")print t RS $0}}}'
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2014-06-28 22:33 |显示全部楼层
回复 1# 米兰的_小木匠

记个流水帐:
  1.     awk '$1==$4&&$4==$7&&$2==$8&&$2=="cds"&&$5=="intron"&&$3==$6&&$6+1==$9' RS=''  urfile
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP