Awk 如何在文本文件中将列分隔为两个以制表符分隔的列

Awk 如何在文本文件中将列分隔为两个以制表符分隔的列,awk,sed,multiple-columns,Awk,Sed,Multiple Columns,我有一个有5列的输入文件,但是我需要将第5列分成两列,这样输出文件总共有6列 我的输入文件数据如下所示: chrX 100629986 100630758 - ENSG00000000003.14.IntrontENST00000373020.8.Intron chrX 100630866 100632484 - ENSG00000000003.14.IntrontENST00000373020.8.Intron chrX 100632568

我有一个有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列包含“tenst0000373020.8.Intron”

但是,并非所有我的数据都有.Intron标记,例如:

chrX    100597503   100597531   +   ENSG00000000005.5tENST00000485971.1
但是你会注意到我所有的数据都是“t”,因此我想用它来分隔这些列。我不确定如何对有几十万行的数据执行此操作,手动执行此操作将花费很长时间。我还需要将整个文件用制表符分隔,以便继续进一步处理这些数据


多亏了大家,您可以使用sed插入选项卡:

sed 's/tENST/\t&/' < input > output
sed's/tENST/\t&/'output
每个tENST字符串都由一个制表符+字符串替换


对于某些
sed
版本,您可以尝试使用
$'s/tENST/\t&/'
(即,在
$
前加一个前缀)。

您可以使用sed插入选项卡:

sed 's/tENST/\t&/' < input > output
sed's/tENST/\t&/'output
每个tENST字符串都由一个制表符+字符串替换


对于某些
sed
版本,您可以尝试使用
$的/tENST/\t&/'
(即,在
$
前加一个前缀)。

使用awk,您可以编写

awk -F"\t" '{sub(/tENST/, FS "tENST", $5); print}' file > output

有了awk,你就可以写作了

awk -F"\t" '{sub(/tENST/, FS "tENST", $5); print}' file > output

“t”字符是否存在于文件中的其他位置?它的前面总是ENSG+数字和点吗?在单词“Intron”(有时是原始帖子中第5列中某些行的后缀)之外,则不是。是的,“t”后面总是ENST+什么吗?是的,总是ENST,后面是数字的一些变体。“t”字符是否存在于文件的其他地方?它的前面总是ENSG+数字和点吗?在单词“Intron”(有时是原始帖子中第5列中某些行的后缀)之外,则不是。是“t”总是跟在ENST+后面吗?是的,总是ENST,然后是数字的一些变化。输出以下内容:chrX 100629986 100630758-ENSG0000000003.14.IntronttENST00000373020.8.Intron chrX 100630866 100632484-ENSG0000000003.14.IntronttENST00000373020.8.IntronchrX 100632568 100633404-ENSG0000000003.14.IntronttENST00000373020.8.Intron编辑:Yikes不知道如何格式化注释中的代码。@系统:您使用的是什么操作系统?是否需要更新Mac OS X版本10.9.5?整个实验室都在使用mac电脑,所以未经PI许可,我不允许进行任何更新,而他一整天都在外面。哇,这真让人尴尬。这工作完美无瑕,谢谢!我已经接受了答案!:)输出以下内容:chrX 100629986 100630758-ensg0000000003.14.introntenst0000373020.8.Intron chrX 10063086100632484-ensg0000000003.14.introntenst0000373020.8.Intron chrX 100632568 100633404-ensg0000000003.14.introntenst000037300.8.Intron编辑:Yikes不知道如何在注释。@系统:您使用的是什么操作系统?Mac OS X版本10.9.5是否需要更新?整个实验室都在使用mac电脑,所以未经PI许可,我不允许进行任何更新,而他一整天都在外面。哇,这真让人尴尬。这工作完美无瑕,谢谢!我已经接受了答案!:)正如你所看到的,只有一个被接受的答案是可能的,而乔洛巴的答案是更好的。正如你所看到的,只有一个被接受的答案是可能的,而乔洛巴的答案是更好的。