#!/bin/bash

while read ; do

  if [[ $REPLY =~ ^([0-9]+)' -> '([0-9]+)' 'B$ ]]
  then

    long=${BASH_REMATCH[1]}
    int=${BASH_REMATCH[2]}

    echo "${long} -> ${int}.0 B"

  elif [[ $REPLY =~ ^([0-9]+)' -> '([0-9]+)\.([0-9]{2})' '([kMGT]B)$ ]]
  then

    long=${BASH_REMATCH[1]}
    int=${BASH_REMATCH[2]}
    frac=${BASH_REMATCH[3]}
    unit=${BASH_REMATCH[4]}

    frac=$(( 10#${frac} ))

    [[ $long =~ ^[0-9]{2,4}4[5-9][0-9]{3}*$ ]] || ((frac+=5))

    ((frac/=10))
    
    if ((frac == 10))
    then
      ((++int))
      frac=0
    fi

    echo "${long} -> ${int}.${frac} ${unit}"

  fi

done
