免费注册 查看新帖 |

ChinaUnix.net

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

[文本处理] awk比较两文本文件 [复制链接]

论坛徽章:
0
发表于 2019-01-08 17:18 |显示全部楼层
用awk比较两文件,当第一列相等且文件2第二列的数值位于文件1的第三列和第四列的数值之间时,打印文件2整行,如下面的数据,请问怎么做到呢?

文件a.txt:

chr2 intron 12 70 -

chr2 intron 80 100 -

chr2 intron 156 173 -

文件b.txt:

chr2 cds 13 -

chr2 cds 81 -

chr2 cds 143 -

我想得到这样的结果:

chr2 cds 13

chr2 cds 81

我自己琢磨了好久编出来的程序:awk -F " " 'NR==FNR[a1[$1]=$1;a2[$1]=$2;a3[$1]=$3;a4[$1]=$4;next}NR>FNR{if ($3>a3[$1]&&$3<a4[$1]&&$1=a1[$1]) print $0}}' a.txt b.txt,输不出结果,不知道问题出在哪里,急死

论坛徽章:
0
发表于 2019-01-08 17:21 |显示全部楼层
还望各位路过的大神相助,小妹这厢有礼了~|~

论坛徽章:
7
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:41程序设计版块每日发帖之星
日期:2016-07-04 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-08-09 06:20:00
发表于 2019-01-09 10:16 |显示全部楼层
awk 'NR==FNR{a[FNR]=$1;b[FNR]=$3;c[FNR]=$4}NR!=FNR{if(a[FNR]==$1&&$
3<=c[FNR]&&$3>=b[FNR])print $0}'  file1 file2

论坛徽章:
0
发表于 2019-01-10 10:52 |显示全部楼层
非常感谢您的回复,可是结果还是会忽略掉能匹配到的位置,可能我问题描述不够详细,我是想从a.txt(图1)中挑选落在b.txt(图2)文件中基因上的位点,输出的结果如图3。
file:///C:/Users/%E8%B4%BA%E8%B6%85/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif

a.txt

a.txt

b.txt

b.txt

结果

结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP