- 论坛徽章:
- 145
|
回复 23# Treywea
try this way that you can see the matched items by P(print) value
$ awk -vP=1 'FNR==NR{if($2=="exon"){C=++c[$1];s[$1,C]=$3;e[$1,C]=$4}next}{C=c[$1];if(C)for(n=1;n<=C;n++){if(s[$1,n]<=$2&&$2<=e[$1,n]){m+=$3;a+=$4;n=C;if(P)print $0,"m="m,"all="a}}}END{print "m="m,"all="a}' b.gff3 a.txt
Chr1 1006 1 3 m=1 all=3
Chr1 1007 0 2 m=1 all=5
Chr1 2939 3 5 m=4 all=10
Chr1 35234 1 1 m=5 all=11
Chr2 3938 0 4 m=5 all=15
m=5 all=15
$ awk -vP=0 'FNR==NR{if($2=="exon"){C=++c[$1];s[$1,C]=$3;e[$1,C]=$4}next}{C=c[$1];if(C)for(n=1;n<=C;n++){if(s[$1,n]<=$2&&$2<=e[$1,n]){m+=$3;a+=$4;n=C;if(P)print $0,"m="m,"all="a}}}END{print "m="m,"all="a}' b.gff3 a.txt
m=5 all=15
|
|