简体   繁体   English

awk + ​​gsub特殊字符

[英]awk + gsub special characters

G . G 。 . PASS VRT=1 GT 0/0 0/0 0/0 0/0 0/0 0/0 通过VRT = 1 GT 0/0 0/0 0/0 0/0 0/0 0/0
G . G 。 . PASS VRT=1 GT 0/0 0/0 0/0 0/0 0/0 0/0 通过VRT = 1 GT 0/0 0/0 0/0 0/0 0/0 0/0
C . C 。 . PASS VRT=1 GT 0/0 0/0 0/0 0/0 0/0 0/0 通过VRT = 1 GT 0/0 0/0 0/0 0/0 0/0 0/0

I have a file as shown above and i am trying to replace 0/0 with text in column 1. 我有一个如上所示的文件,我试图用第1列中的文本替换0/0。

awk -F'\t' '{ gsub("0/0", $1/$1);}1' OFS="\t" file.txt

The output should look like: 输出应如下所示:

G       .       .       PASS    VRT=1   GT      G/G     G/G     G/G     G/G     G/G     G/G     
G       .       .       PASS    VRT=1   GT      G/G     G/G     G/G     G/G     G/G     G/G     
C       .       .       PASS    VRT=1   GT      C/C     C/C     C/C     C/C     C/C     C/C   

And it throws the error "awk: division by zero". 并引发错误“ awk:除以零”。 Looks like i am not matching the special characters. 看起来我不匹配特殊字符。 Could someone help. 有人可以帮忙。

你的意思是 :

awk -F'\t' 'gsub("0/0", $1"/"$1)+1' OFS="\t" file.txt

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM