【发布时间】:2012-06-07 21:11:51
【问题描述】:
第一次在这里发帖,这是一个 awk 问题。
我有一个如下所示的文件:
Motif name class from to strand sequence score
>ENSBTAG00000000436
MA0079.2 SP1 Zinc-coordinating 29 38 - agggggtggg 6.33
... (50 similar lines)
>ENSBTAG00000000380
MA0113.1 NR3C1 Zinc-coordinating 92 109 - ccagaaagtgcttctccc 7.03
... (57 similar lines)
等等。请注意,>ENSBTA 行是一组记录的“标签”。所以我想要的是将 >ENSBTA 行作为字段附加到以 MA 开头的行中......即
MA0079.2 SP1 Zinc-coordinating 29 38 - agggggtggg 6.33 >ENSBTAG00000000436
到现在为止
awk '{if (NR>1&&NF==1) genename=$1; if (NR>1&&NF>1) print $0, genename}'
这非常接近,但它没有将 ENST 标识符与正确的行保持一致。因此,参考上面的示例,并非文件第二部分的所有 57 行都获得了正确的标识符(ENSBTAG00000000380)。
有人可以建议解决此问题的最佳方法吗?
谢谢
伊恩
【问题讨论】:
标签: awk