awk + ​​gsub特殊字符

时间:2014-10-10 13:57:47

标签: awk gsub

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

我有一个如上所示的文件,我试图将0/0替换为第1列中的文本。

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

输出应如下所示:

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   

它会抛出错误" awk:除以零"。看起来我不匹配特殊字符。有人可以帮忙。

1 个答案:

答案 0 :(得分:0)

你的意思是:

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