【发布时间】:2019-05-22 01:35:25
【问题描述】:
我有一个大表(数百万行乘数百列,以制表符分隔),前三列如下所示:
GT:DS:GP 0|0:0.181:0.827,0.165,0.008 0|0:0.181:0.827,0.165,0.008 0|0:0.181:0.827,0.165,0.008
GT:DS:GP 0|0:0.109:0.894,0.103,0.003 0|0:0.109:0.894,0.103,0.003 0|0:0.109:0.894,0.103,0.003
GT:DS:GP 0|0:0.004:0.996,0.004,0.000 0|0:0.004:0.996,0.004,0.000 0|0:0.004:0.996,0.004,0.000
GT:DS:GP 0|0:0.117:0.886,0.110,0.003 0|0:0.117:0.886,0.110,0.003 0|0:0.117:0.886,0.110,0.003
所有剩余的列看起来像第 2 列和第 3 列。我需要一个基于第一个文件的新文件,没有第二个冒号 (:) 之后的文本。输出应如下所示:
GT:DS 0|0:0.181 0|0:0.181 0|0:0.181
GT:DS 0|0:0.109 0|0:0.109 0|0:0.109
GT:DS 0|0:0.004 0|0:0.004 0|0:0.004
GT:DS 0|0:0.117 0|0:0.117 0|0:0.117
我觉得这可能与我在this post 中找到的内容类似,但显然 exit 命令告诉它在第一次出现后停止,因此它不适用于多次出现(在多行/多列中) )...
awk -v RS=':' -v ORS=':' 'NR==1{print} NR==2{print; printf"\n";exit}' input > output
这次失败尝试的输出是:
GT:DS:
提前感谢您的帮助!
【问题讨论】: