awk:
awk 'BEGIN{k=1024;m=1024*k;g=1024*m;FS=OFS="\""} {x=substr($2,1,length($2)-1)*1} $2~/[Kk]$/{x*=k} $2~/[mM]$/{x*=m} $2~/[Gg]$/{x*=g} {print $1,x"\""} yourFile
check your example:
kent$ cat tt 03:14.27,"31K" 03:13.59,"50M" 04:11.51,"435K" kent$ awk 'BEGIN{k=1024;m=1024*k;g=1024*m;FS=OFS="\""} {x=substr($2,1,length($2)-1)*1} $2~/[Kk]$/{x*=k} $2~/[mM]$/{x*=m} $2~/[Gg]$/{x*=g} {print $1,x"\""}' tt
exit:
03:14.27,"31744" 03:13.59,"52428800" 04:11.51,"445440"
if you don't need quotes:
awk 'BEGIN{k=1024;m=1024*k;g=1024*m;FS="\""} {x=substr($2,1,length($2)-1)*1} $2~/[Kk]$/{x*=k} $2~/[mM]$/{x*=m} $2~/[Gg]$/{x*=g} {print $1,x} yourFile
source share