chr1 15431658 A T GT:AD:DP:GQ:PL 0/1:15,20:35:66:211,0,222
我想要一个输出,我可以将第6列分隔为“:”。我怎么能在awk中这样做。
chr1 15431658 A T GT:AD:DP:GQ:PL 0/1 15,20 35 66 211,0,222
答案 0 :(得分:2)
关注awk
可能对您有帮助。
awk -F"[[:space:]]+" '{gsub(/:/,"\t",$NF)} 1' OFS="\t" Input_file
答案 1 :(得分:1)
只需使用以下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
分隔列或空格分隔列,则不会在帖子中指定。{1}}我没有考虑到这一点,你可以通过以下方式更改awk
命令来配置它(OFS="YOUR SEPARATOR"
):
awk 'BEGIN{OFS="\t"}{$6=gensub(/:/,"\t","g",$6); print $0}'