首先發布在這裏,它是和awk的問題。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行是一組記錄的「標籤」。所以,想什麼,我是開始MA的> ENSBTA線被追加作爲線場...即
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)。
有人可以請建議最好的方式去做這件事嗎?
感謝
伊恩
感謝。這很好,與我的方式很不一樣 - 也很有教育意義。 – duff