第一次在这里发帖,这是和 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)。
有人可以建议最好的方法吗?
谢谢
伊恩