【发布时间】:2015-11-13 19:16:51
【问题描述】:
我有一个包含 5 列的输入文件,但我需要将第 5 列分成两列,因此输出文件总共有 6 个。
我的输入文件数据如下所示:
chrX 100629986 100630758 - ENSG00000000003.14.IntrontENST00000373020.8.Intron
chrX 100630866 100632484 - ENSG00000000003.14.IntrontENST00000373020.8.Intron
chrX 100632568 100633404 - ENSG00000000003.14.IntrontENST00000373020.8.Intron
您注意到我的所有数据中的第 5 列具有相似的结构,所以我想做的是让我的第 5 列包含 "ENSG00000000003.14.Intron" 并且我的第 6 列包含 “tENST00000373020.8.Intron”
但并非我所有的数据都有 .Intron 标签,例如:
chrX 100597503 100597531 + ENSG00000000005.5tENST00000485971.1
但是您会注意到我的所有数据都是 "t",因此这就是我想用来分隔这些列的方法。我不确定如何对有几十万行的数据执行此操作,手动执行此操作将花费太长时间。我还需要将整个文件用制表符分隔,以便我可以继续进一步处理这些数据。
提前感谢大家,
【问题讨论】:
-
“t”字符是否出现在文件的其他位置?它总是以 ENSG + 数字和点开头吗?
-
在“Intron”这个词之外,它有时是第 5 列中某些行的后缀,如原始帖子所示,那么不,它没有。
-
"t" 后面总是跟着 ENST + 东西吗?
-
是的,总是 ENST 以及之后的一些数字变化。
标签: awk sed multiple-columns