将一列分隔文本拆分为多列



我有一个如下所示的文件。

chr1     15431658     A     T      GT:AD:DP:GQ:PL           0/1:15,20:35:66:211,0,222

我想要一个输出,我可以在其中拆分由":"分隔的第 6 列。我怎么能在尴尬中做到这一点。

这是我想要的输出

chr1    15431658   A   T    GT:AD:DP:GQ:PL      0/1   15,20   35   66   211,0,222

以下awk可能会对您有所帮助。

awk -F"[[:space:]]+" '{gsub(/:/,"t",$NF)} 1' OFS="t"   Input_file

只需使用以下awk命令:

echo 'chr1     15431658     A     T      GT:AD:DP:GQ:PL           0/1:15,20:35:66:211,0,222' | awk '{$6=gensub(/:/,"t","g",$6); print $0}' | column -t
chr1  15431658  A  T  GT:AD:DP:GQ:PL  0/1  15,20  35  66  211,0,222

您可以在替换调用中根据需要将t替换为任意数量的空格,最后但并非最不重要的一点是,如果您想要分隔的列或空格分隔的列,则不会在您的帖子中指定tab空格。我没有考虑到这一点,您可以通过通过以下方式更改awk命令来配置它(OFS="YOUR SEPARATOR"(:

awk 'BEGIN{OFS="t"}{$6=gensub(/:/,"t","g",$6); print $0}' 

相关内容

  • 没有找到相关文章

最新更新