O problema com o primeiro exemplo é que bash pode operar somente em inteiros e sua segunda tentativa com awk simplesmente não está correta.
Eu proponho usar bc para este trabalho:
bc <<< "$new-$old"
<<< é assim chamado aqui string , e é basicamente a forma mais curta echo "$new-$old" | bc .
Você também pode modificar seu comando awk se quiser:
echo "$new $old" | awk '{print $1-$2}'
ou (usando aqui string como acima):
awk '{print $1-$2}' <<< "$new $old"