我用一些例子:如果列匹配值,使用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
所以,如果一些列有一個值開始與ACT或GI想把它更改爲 「0」 或 「 - 」 和最後一列變更爲 「W」(它是$ $ 34 $ 35 $ 36 $ 37 38)
OUTPUT:
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 -v OFS = 「\ t」 的「{如果(GSUB(/ G | C:| A:| T:/, 「@」))打印$ 1 ,$ 2,$ 3,$ 4 $ 5, 「W」;否則打印$ 0}'erase.txt | awk'BEGIN {FS = OFS =「\ t」} {for(i = 1; i <= NF; i ++)if($ i〜/ @ /)$ i = 0}; 1' – Paul