我有一个如下所示的文件。
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}'