Just to approve upon @Florian's answer...
#!/bin/bash
$(xwininfo -root | awk -F ': +' '/ (Width|Height):/ { print $2 }')
width=$1
height=$2
wmctrl -r :ACTIVE: -e 0,-1,-1,$((width*90/100)),$((height*90/100))
Why is this better?
The change from [ :]+ as the field seperator, to : + Makes it require a colon, then a space, in that order, not just one or more of either.
This means that it no longer breaks when you want to use things like Absolute upper-left, that have spaces in them. In @Florian's answer, awk'ing for Absolute upper-left X: 123 would result in upper-left, not in 123.
To futher continue on how to expand this better; you could take the example above and do something like...
set -- $(xwininfo -root | awk -F ': +' '/ (Absolute upper-left X|Absolute upper-left Y|Width|Height):/ { print $2 }')
posX=$1
posY=$2
width=$3
height=$4
wmctrl -r :ACTIVE: -e 0,$((posX+someNumX)),$((posY+someNumY)),$((width+someNumW)),$((height+someNumH))
to move it by <someNumX, someNumY> and resize it by <someNumW, someNumH>.