If statement 如果列与值匹配,请使用gsub并将值打印到另一列

If statement 如果列与值匹配,请使用gsub并将值打印到另一列,if-statement,awk,gsub,If Statement,Awk,Gsub,我举了一些例子: 输入: 0.6 0.7 A:0.01 - 0 C:0.01 0.1 - 0.2 0 0.7 0.02 G:0.2 - 0 0.5 0.23 0.1 T:0.05 0 0.1 0.2 0.3 0.58 0 所以,如果某列的值以C T或G开头,我想将其更改为“0”或“-”,最后一列更改为“W”(它是$34$35$36$37$38) 输出:

我举了一些例子:

输入:

0.6     0.7    A:0.01   -       0
C:0.01  0.1    -        0.2     0
0.7     0.02   G:0.2    -       0
0.5     0.23   0.1      T:0.05  0
0.1     0.2    0.3      0.58    0
所以,如果某列的值以C T或G开头,我想将其更改为“0”或“-”,最后一列更改为“W”(它是$34$35$36$37$38)

输出:

0.6     0.7    0        -       W
0       0.1    -        0.2     W
0.7     0.02   0        -       W
0.5     0.23   0.1      0       W
0.1     0.2    0.3      0.58    0 
我想用awk

awk '{if($34=="^:^");gsub($34,"*","0") && gsub($38,"0","W"); else print}' file
其他列也一样。
谢谢。

像这样的东西怎么样:

awk-vofs=“\t”{if(gsub(/G:| C:| A:| t:/,“0”))打印$1、$2、$3、$4,“W”;否则打印$0}
'


然后替换从00到零的值。

这样的值怎么样:

awk-vofs=“\t”{if(gsub(/G:| C:| A:| t:/,“0”))打印$1、$2、$3、$4,“W”;否则打印$0}
'

然后替换从00到零的值。

这样如何:

$ awk '{for(i=1;i<=4;i++){if ($i ~ /A:|C:|T:|G:/){$i=0; $NF="W"}}}1' file | column -t
0.6  0.7   0    -     W
0    0.1   -    0.2   W
0.7  0.02  0    -     W
0.5  0.23  0.1  0     W
0.1  0.2   0.3  0.58  0
这样怎么样:

$ awk '{for(i=1;i<=4;i++){if ($i ~ /A:|C:|T:|G:/){$i=0; $NF="W"}}}1' file | column -t
0.6  0.7   0    -     W
0    0.1   -    0.2   W
0.7  0.02  0    -     W
0.5  0.23  0.1  0     W
0.1  0.2   0.3  0.58  0

如果您不关心间距:

$ awk 'gsub(/[ACGT][^[:space:]]+/,0){$NF="W"}1' file
0.6 0.7 0 - W
0 0.1 - 0.2 W
0.7 0.02 0 - W
0.5 0.23 0.1 0 W
0.1     0.2    0.3      0.58    0
如果您这样做:

$ awk 'gsub(/[ACGT][^[:space:]]+/,0){$NF="W"}1' file | column -t
0.6  0.7   0    -     W
0    0.1   -    0.2   W
0.7  0.02  0    -     W
0.5  0.23  0.1  0     W
0.1  0.2   0.3  0.58  0

如果您不关心间距:

$ awk 'gsub(/[ACGT][^[:space:]]+/,0){$NF="W"}1' file
0.6 0.7 0 - W
0 0.1 - 0.2 W
0.7 0.02 0 - W
0.5 0.23 0.1 0 W
0.1     0.2    0.3      0.58    0
如果您这样做:

$ awk 'gsub(/[ACGT][^[:space:]]+/,0){$NF="W"}1' file | column -t
0.6  0.7   0    -     W
0    0.1   -    0.2   W
0.7  0.02  0    -     W
0.5  0.23  0.1  0     W
0.1  0.2   0.3  0.58  0
(G)如果(G)C:A:::;t:::/,,,,,,,“)印刷美元1美元,2美元,3美元,3美元,4美元,5美元,5,“W”其他印刷美元1美元,2美元,4美元,5,“W”其他印刷美元0}”的其他印刷美元的“其他印刷美元”的“学校学校”7 7-v OFS的7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7.7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7我